大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、我改了pop函数。你忘了第一个Q-head 被你指NULL了,而在后面的函数push中你if()中Q-head=Q-prev=current;语句从来没有执行过,所以head一直是指向空的。你可以看看我给你改的调试信息。
创新互联公司是专业的岱山网站建设公司,岱山接单;提供成都网站设计、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行岱山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
2、对顺序循环队列,常规的设计方法是使用队尾指针和队头指针,队尾指针用于指出当前胡队尾位置下标,队头指针用于指示当前队头位置下标。
3、= pnew更新队列尾部指针。队列的数据结构形式就是由一个头front指针,一个尾rear指针来表征,items的设计是用空间换时间,涉及队列大小的操作会非常方便。
pnew更新队列尾部指针。队列的数据结构形式就是由一个头front指针,一个尾rear指针来表征,items的设计是用空间换时间,涉及队列大小的操作会非常方便。
//非循环队列判断空的依据,对头指针与对尾指针相等 //既然都调用DestroyQueue释放内存,后面对队列的操作没有任何意义。//只要不调用DestroyQueue,你的算法也是可以实现长度计算的。
求长度:(Q.rear-Q.front+MAXSIZE)%MAXSIZE MAXSIZE是为了防止越界,比如一共30个位置,队尾指到30了,如果+1就到31了,这时候再取模30就得1,那么队尾指到的30向后+1就到了1了,循环回来了。
即tail=tail+1这时Q(9)入队,见图1 (c)。当队尾已经处理在最上面时,即tail=10,如果还要执行入队操作,则要发生上溢,但实际上队列中还有三个空位置,所以这种溢出称为假溢出。 克服假溢出的方法有两种。
pq-rear-next = pnew这个代码从队列的尾部增加新节点,然后pq-rear = pnew更新队列尾部指针。
修改后代码如下,你看看应该有一些不一样的地方,队列很多判断你都写错了,这个队列好像是从数组的顶部往下存储的。