队列操作 出队与入队
来源:互联网 发布:dota2数据分析师 编辑:程序博客网 时间:2024/04/29 18:48
- #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");
- }
阅读全文
0 0
- 队列基本操作 出队与入队
- 队列操作 出队与入队
- 队列操作--出队入队
- 链式队列操作,初始化,入队,出队
- 编程实现队列入队出队操作
- 队列的入队、出队操作实现
- 队列的出队/入队的操作
- 队列的入队和出队操作
- 队列的入队/出队操作
- 队列的入队、出队操作
- 队列的入队、出队基本操作
- 队列的入队出队操作
- 链式队列的入队出队操作
- 实验C—3 顺序队列基本操作入队与出队
- 实验C—4 链队列基本操作出队与入队
- 队列之出队入队
- 队列的入队,出队,测长,打印操作
- 队列的入队,出队,测长,打印操作 .
- 线程同步问题
- 3342 数据结构实验之二叉树三:统计叶子数
- 【loli的胡策】联校11.1(乱搞)
- Inno Setup入门(一)——最简单的安装脚本
- 静态方法与实例方法的区分
- 队列操作 出队与入队
- javaEE 之学习路线
- linux 中通过shell在crontab定时任务添加任务
- web渗透—SQL注入思路
- table中,文字一行,溢出隐藏省略号写法
- Eclipse中Maven工程缺少Maven Dependencies
- plsql 导出表和表数据
- 装饰者设计模式,Debug之后可以加深理解
- [DP] BZOJ1801: [Ahoi2009]chess 中国象棋