- 这次我总结的是关于队列方面的知识。
队列也类似于一种单链表。但它只允许在一端进行插入操作另一端进行删除操作的线性表。允许插入的一端称为队头,允许删除的一端称为队尾。该线性表除了具有线性关系外还有先进先出的特性。类似于排队。
首先我们需要设置两个指针。
队头指针front 队尾指针rear
在入队时front 加一。出队时rear加一。且front指向队头元素的前一个位置。rear指向队尾元素的位置。
由于这个存储方式的特点。队列中的元素具有单向移动性。
当遇到首尾相连的队列时,这是一种特殊情况,称其为循环队列。具体操作在后面的链队列中介绍。
链队列。
为队列的链接存储结构,通常用单链表表示。其结点结构与单链表结点结构一致。队头指针指向链队列的头结点。队尾指针指向终端结点。
构造函数
将队头指针和队尾指针都指向头结点s。
析构函数
从头结点开始,一个个遍历直到p->next为空。
其中最重要的还是入队和出队操作。
入队:
Node*s=NULL;
s=new Node;
s->data=x;
s->next=NULL;
rear->next=s;
rear=s;
出队:
Node*p=NULL;
if(rear==front)throw"下溢";
p=front->next;
front->next=p->next;
if(p->next==NULL)
rear=front;
delete p;
大体操作与单链表无异。
最后对于队列内容总结。
大体操作与单链表差不多,比较适合某些特定问题,使用方便易理解。