队列基本操作 出队与入队
2014-08-01 10:59
501 查看
#include<stdio.h> #include<stdlib.h> typedef struct QNode { //构造结点类型 int data; struct QNode *next; }*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; void CreateQueue(LinkQueue &Q);//创建队列 void EnQueue(LinkQueue &Q,int e);//插入元素进队 void DeQueue(LinkQueue &Q);//删除队头元素 void PrintfQueue(LinkQueue &Q);//输出队列 void DestroyQueue(LinkQueue &Q);//销毁队列 void main() { LinkQueue Qa; int m,n; CreateQueue(Qa); printf("Please input the total of inserting number:\n"); scanf("%d",&m); while(m--) { printf("Please input a number to insert:"); scanf("%d",&n); EnQueue(Qa,n); } PrintfQueue(Qa); DeQueue(Qa); PrintfQueue(Qa); DestroyQueue(Qa); } void CreateQueue(LinkQueue &Q) { Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) { printf("Fail to create queue!\n"); return; } Q.front->next=NULL; printf("Success to create queue!\n"); } void EnQueue(LinkQueue &Q,int e) { QueuePtr p; if(!(p=(QueuePtr)malloc(sizeof(QNode)))) { printf("Fail to insert element!\n"); return; } p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; printf("Success to insert element:%d\n",e); } void DeQueue(LinkQueue &Q) { QueuePtr q; int x; if(Q.rear==Q.front) { printf("the queue is empty!\n"); return; } q=Q.front->next; x=q->data; Q.front->next=q->next; if(Q.rear==q) Q.rear=Q.front; free(q); printf("Success to delete element:%d\n",x); } void DestroyQueue(LinkQueue &Q) { while(Q.front) { Q.rear=Q.front->next; free(Q.front); Q.front=Q.rear; } printf("Success to destroy queue!\n"); } void PrintfQueue(LinkQueue &Q) { QueuePtr p; if(Q.rear==Q.front) { printf("The queue is empty!\n"); return; } printf("The queue is:"); p=Q.front->next; while(p) { printf("%d",p->data); p=p->next; } printf("\n"); }
相关文章推荐
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- C语言实现循环队列基本操作(初始化、判断队空、入队、出队)
- 循环队列的初始化、入队、出队等基本操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 循环队列和链式队列的结构及其基本操作(入队、出队、取队头、查看对内元素)
- 实验C—4 链队列基本操作出队与入队
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 顺序循环队列基本操作(入队,出队,清空,销毁,历遍)
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 实验C—3 顺序队列基本操作入队与出队
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 队列的入队、出队基本操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 循环队列的定义、入队、出队等操作 C++代码实现