队列的创建、入队、出队、打印、统计队列长度
来源:互联网 发布:淘宝网首页砂锅手套 编辑:程序博客网 时间:2024/04/30 03:06
队列是一种特殊的线性表,在这种线性表中,删除运算限定在表的一段进行,而插入运算限定在表的另一端进行,通常,约定把允许插入的一端称为队尾,把允许删除的一端称为队首。队列进出的原则是先进队的先出队,即先进先出原则。队列在计算机程序设计中经常被用到,如Windows操作系统的消息队列。
队列可以采用链式或顺序存储结构来描述,本文采用链式结构来进行表达。由于队列需要在队首以及队尾进行删除和插入操作,所以需要设置两个指针来表示队列,通常队尾指针指向最后进入队列的元素,为了便于表示空队列,专门设置了一个头结点,当队列为空时,头指针和尾指针均指向头结点。
本文示例中的函数功能包括队列的创建、入队、出队、打印、统计队列长度。
#include <iostream>using namespace std;struct node //队列的节点{ int data; struct node *next;};struct linkQueue{ struct node *font; //分别指向队列的头和尾 struct node *rear; int n; //队列长度};//创建一个空队列void create(struct linkQueue *Q){ //创建一个头节点 struct node *head = new node; head->next = NULL; Q->font = head; Q->rear = head; Q->n = 0;};//入队数据numvoid queueInsert(struct linkQueue *Q, int num){ struct node *p = new node; p->data = num; p->next = NULL; Q->rear->next = p; Q->rear = p; Q->n++;};//出队并打印出队的数据void queuePop(struct linkQueue *Q){ struct node *temp; if(Q->font->next != NULL) { temp = Q->font->next; Q->font->next = Q->font->next->next; cout<<temp->data<<endl; delete(temp); if(Q->font->next == NULL) Q->rear = Q->font; Q->n--; }};//打印void print(struct linkQueue *Q){ cout<<"打印开始!"<<endl; struct node *temp = Q->font; if(temp == Q->rear) cout<<"队列为空!"<<endl; else {本文 while(temp != Q->rear) { cout<<temp->next->data<<endl; temp = temp->next; } } cout<<"打印结束!"<<endl; cout<<endl;}int main(){ linkQueue Q; create(&Q); /********入队*************/ queueInsert(&Q, 1); queueInsert(&Q, 2); queueInsert(&Q, 3); queueInsert(&Q, 4); print(&Q); /********出队*************/ queuePop(&Q); print(&Q); queuePop(&Q); print(&Q); queuePop(&Q); print(&Q); queuePop(&Q); print(&Q); return 0;}
0 0
- 队列的创建、入队、出队、打印、统计队列长度
- 顺序队列的创建、入队、出队
- 队列的创建,入队,出队,遍历
- 队列的入队,出队,测长,打印操作
- 队列的入队,出队,测长,打印操作 .
- 编程实现队列的入队、出队、测长、打印
- 编程实现队列的入队、出队、测长、打印
- 编程实现队列的入队、出队、测长、打印
- 链队列的初始化、入队、出队及打印(数据结构)
- 顺序队列基本操作的实现----入队、出队、打印
- 顺序队列的入队,出队,遍历队列计算队列的长度
- 队列的创建 入队出队 Java数据结构与算法
- 链队列的初始化,入队,出队,计算队的长度,遍历链队销毁队列
- 队列的出队/入队的操作
- 队列的入队、出队操作实现
- 队列的入队和出队操作
- 链队列的入队、出队
- 队列的入队和出队
- 百度地图显示的超详细过程介绍
- 如何使用itunes来共享iphone或者ipad中app中的log文件
- linux内核对于指令异常的处理
- python自动化之路-day13
- 《必然》
- 队列的创建、入队、出队、打印、统计队列长度
- java异常
- C#, Java 和 c++的特点,有什么相同的地方?不同的地方?C#分别从c++和java中吸取了他们那些优点?
- 转载:Java中普通代码块,构造代码块,静态代码块区别及代码示例
- java上传文件通过SFTP
- 去除小数点后多余的0
- 文件上传
- MVC Razor语法解析
- 关于elasticsearch集群节点配置