当前队列的头指针和尾指针分别是8和3
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/10 13:35:51
60-47得1350-13得37在第37位
front==rea
选C (R-F+M) % M再问:没过程?再答:如果R>=F,那么中间一共有R-F那么多元素如果R
链表里有“头指针”变量,它存放一个地址,该地址指向一个元素.链表里的每个元素称为“节点”.head是头指针,而不是头结点它只占用4字节大小空间(如果是32位)建链表可以有多种方法的可以建头结点或者头指
(n-p+r+1)mod(n)
2.答案,A,这个是根据循环队列的定义来了,教材在处理循环队列的溢出时,是空一位不用,所以队列中元素的个数(rear-front+m)%m;为什么+m是因为可能出现rear-front
其实算法是这样的,都是队尾减去队头比如第一题队尾减队头=10-45=-35,这样是负的,说明了队头跑到了队尾的后面去了,因为循环的关系这个是正常的,我们只要再加上容量就是答案了-35+50=15第二题
1.F=F->next;R-next=F;2.顺序存储结构:O(logn)链式:O(n)再问:能说下具体算法吗再答:两个算法都要么??再问:恩再答:1.Type*outqueue(Type*Q,Tpy
地址再问:497887447@qq.com再答:intmain(void){inti;charq[m];char*font;front=q;}
d头指针为42,到下一个数的时候,指针+1变成43,所以到50的时候,指针为92
循环队列元素个数:n=(rear-front+m)modmmod为取余数运算.
queue::queue()//buildanemptyqueue{front=0;rear=0;}boolqueue::empty()const{returnrear==front;}(rear+1
队头指针等于队尾指针时,说明队为NULL?不等时,说明队不为NULL;对头指针用于入队,队尾用于出队
if(count>0)//检查有没有元素{x=q[(front+1)%m];//front+1有可能>=m,%m取余数得到首元素的位置front=(front+1)%m;//新front的位置就是原来
1621+3-8=16再问:可以解释一下吗?谢谢了……再答:从头结点开始数,一直数到尾巴结点(如果到来21就回到0)910111213141516171819200123头结点执向的地方是空。(实现的
尾指针为L,节点p入队if(L==NULL)//空队列{p->next=p;}else{p->next=L->next;L->next=p;}L=p;出队:node*p;if(L==NULL)//空队
先假设一个数据占的大小是8Byte.再假设加元素之前,队头指针的值为0x00000010,那第二个数据的地址是0x00000018现在加入元素,那么第二个数据应该变为队头,所以队头指针的值应变为第二个