回顾数据结构(5):队列
2016-11-06 13:36
375 查看
#include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct Queue{ int data; struct Queue *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LQueue; //初始化队列 int initQueue(LQueue *q){ q->front = q->rear = (QueuePtr)malloc(sizeof(QNode)); if(!q->front){ return 0; } q->front->next=NULL; return 1; } //队列的插入 int enQueue(LQueue *q,int e){ QueuePtr temp; temp = (QueuePtr)malloc(sizeof(QNode)); if(!temp){ return 0; } temp->data = e; temp->next = NULL; q->rear->next =temp; q->rear = temp; return 1; } //队列的删除 int deQueue(LQueue *q,int *e){ QueuePtr temp; if(q->front==q->rear){ return 0; } temp = q->front; *e= temp->next->data; q->front = temp->next; if(q->rear==temp->next ){ q->rear = q->front; } free(temp); return 1; } //队列的遍历 int traverseQueue(LQueue q){ QueuePtr p; p = q.front->next; while(p){ printf("%d ",p->data); p = p->next; } return 1; } int main(){ LQueue q; initQueue(&q); enQueue(&q,1); enQueue(&q,2); int e; deQueue(&q,&e); deQueue(&q,&e); deQueue(&q,&e); deQueue(&q,&e); enQueue(&q,1); enQueue(&q,2); enQueue(&q,1); enQueue(&q,2); traverseQueue(q); }
相关文章推荐
- 数据结构——基本数据结构之队列
- 数据结构之顺序队列
- 关于linux内核中 等待队列 数据结构之思考
- 数据结构之队列
- 数据结构之表(7)队列的顺序实现
- 数据结构之队列的实现(c语言)
- 数据结构(三)——队列及实现、循环队列实现
- 关于linux内核中 等待队列 数据结构之思考
- 数据结构——队列(C语言实现)
- 基础数据结构(栈,队列)
- 回顾asp二进制流瓶颈,是否可以引进新数据结构
- 面向数据c++数据结构之基本数据结构(队列)--【美】Jan Harrington 陈博译
- C#数据结构之队列
- 数据结构与算法回顾之递归
- [翻译]C#数据结构与算法 – 第五章栈与队列(Part 1)
- 数据结构之循环队列
- 数据结构之队列和栈的使用
- [翻译]C#数据结构与算法 – 第五章栈与队列(Part 2)
- 【数据结构与算法基础】以数组实现的循环队列 / Circular Queue implemented by array
- 数据结构——循环队列操作