赞
踩
队列图示:
创建结点类型:
- class node{
- public:
- int data;
- node *next;
- };
建立队列类:
- class Queue{
- public:
- node *front,*rear; //定义两个结点类型的指针,一个是头用于出队,一个是尾用于入队
-
- Queue(){
- front = NULL;
- rear = NULL;
- }
-
- void push(int x); //入队操作
-
- int pop(); //出队操作
-
- };
入队操作,是使用尾插的方法在队尾插入元素
- void push(int x){
- node *s = new node;
- s->data = x;
- s->next = NULL;
- rear->next = s;
- rear = s;
- }
出队列时,队头不动,出队列时队头后的所有元素向前移动
- void pop(){
- if(front==rear){
- cout<<" 栈空了"<<endl;
- return;
- }
- node *s = front->next; //让s结点指向第一个元素
- int x = s->data;
- front->next = s->next;
-
- if(s->next == NULL){ //说明此时头指针和尾指针都指向队尾元素,队列为空了
- rear = front; //如果队列为空,就让队尾指针指向头指针,这样是为了方便判断队是否为空
- }
- delete s;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。