C++编程练习(6)----“实现简单的队列的链式存储结构“

来源:互联网 发布:java生成嵌套json数据 编辑:程序博客网 时间:2024/06/05 09:05

队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出。简称链队列。

实现代码如下:

/* LinkQueue.h 头文件 */#include<iostream>#define OK 1#define ERROR 0typedef int QElemType;typedef int Status;class QNode{public:QNode():data(0),next(NULL) {}QElemType data;QNode *next;};class LinkQueue{public:LinkQueue() {front=new QNode;rear=new QNode;front=rear;}Status EnQueue(QElemType e);/*入队操作*/Status DeQueue(QElemType *e);/*出队操作*/Status ShowQueue() const;private:QNode *front,*rear;/*队头、队尾指针,队头不保存元素,只起头结点作用,当front==rear时,队列为空*/};Status LinkQueue::EnQueue(QElemType e){QNode *p=new QNode;if(!p)return ERROR;p->data=e;p->next=NULL;rear->next=p; rear=p;return OK;}Status LinkQueue::DeQueue(QElemType *e){if(rear==front)/*空队列*/return ERROR;QNode *p=new QNode;if(!p)return ERROR;p=front->next;*e=p->data;front->next=p->next;if(rear==p)rear=front;delete p;return OK;}Status LinkQueue::ShowQueue() const{if(rear==front){std::cout<<"空队列"<<std::endl;return ERROR;}QNode *p=new QNode;if(!p)return ERROR;std::cout<<"队列从队头至队尾内容依次为:";p=front->next;while(p){std::cout<<p->data<<"  ";p=p->next;}std::cout<<std::endl;return OK;}


0 0