队列的出队/入队的操作
2015-03-14 17:03
405 查看
#include <malloc.h> #include <stdio.h> typedef struct Node { int data; struct Node *pNext; }Node; typedef struct Queue { Node *first; Node *rear; }Queue; Queue *PushBack(Queue *Q,int num) { Node *p = (Node *)malloc(sizeof(Node)); p->data = num; p->pNext = NULL; if (Q->rear == NULL)//empty queue { Q->first = p; Q->rear = p; } else { Q->rear->pNext = p; Q->rear = p; } return Q; } int PopFirst(Queue *Q) { int num; if (Q->first == NULL) { printf("Empty queue\n"); return 0; } num = Q->first->data; Node *p; p = Q->first; if (Q->first == Q->rear) { Q->first = NULL; Q->rear = NULL; } else { Q->first = Q->first->pNext; } free(p); return num; } void test() { Queue *Q; Q = (Queue *)malloc(sizeof(Queue)); Q->first = NULL; Q->rear = NULL; PushBack(Q,1); PushBack(Q,2); PushBack(Q,3); PushBack(Q,4); PushBack(Q,5); printf("%d\n",PopFirst(Q)); printf("%d\n",PopFirst(Q)); printf("%d\n",PopFirst(Q)); printf("%d\n",PopFirst(Q)); printf("%d\n",PopFirst(Q)); printf("%d\n",PopFirst(Q)); } int main() { test(); return 0; }
output:
1
2
3
4
5
Empty queue
0
相关文章推荐
- 队列操作--出队入队
- 循环队列的定义、入队、出队等操作 C++代码实现
- 队列的入队和出队操作
- 循环队列的初始化、入队、出队等基本操作
- 顺序循环队列基本操作(入队,出队,清空,销毁,历遍)
- 队列的入队、出队操作实现
- 利用顺序存储结构实现双端队列的入队和出队操作
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- 编程实现队列的入队/出队操作
- 链队列的初始化、入队、出队等操作实现
- 队列基本操作 出队与入队
- 编程实现顺序队列的入队操作和出队操作,并将出队结果输出
- 队列的入队,出队,测长,打印操作
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 编程实现队列的入队/出队操作
- 用两个栈实现队列 只实现入队出队操作
- 子函数实现链式队列 的 操作,创建、入队、出队、退出。
- 链式队列操作,初始化,入队,出队
- c语言:用双向链表实现双端队列(队列两端都可以进行入队出队操作)