链队列的入队和出队图解 设长度为n的链队列用单循环链表表示,若只设尾指针,则怎样进行入队和出队操作?
设长度为n的链队列用单循环链表表示,若只设尾指针,则怎样进行入队和出队操作?
应该是单循环列表吗?将tail指针设置为tail,//join p->next=tail->next tail->next=p tail=p//join:insert p并将其设置为tail指针//leave if(tail->next==tail)//if只有一个节点{p=tail//save tail=null with p}else{TMP=tailwhile(TMP->next)!=tail)TMP=TMP->next//TMP用于指向前体节点P=tail of tail//使用P存储出站节点。TMP->next=tail->next tail=TMP//重置尾部节点}
如果循环队列的每个元素都有两个指针,一个指向前一个元素ppre,另一个指向后一个元素pnext,则out对和in队列将修改指针。
例如,如果指向要退出组的元素的指针是pdel,则退出组应为:
pdel->pnext->pnext=pdel->pnext
pdel->pnext->pnext=pdel->ppre
如果循环队列的每个元素只有一个指向以下元素的指针pnext,则需要遍历整个队列找到要出列的元素的前一个元素,然后它与上面的算法几乎相同。
建议对每个数据结构使用两个指针。
链队列的入队和出队图解 队列入队为1234出队为 队列的入队和出队图解
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。