队列的实现---数据结构学习(五)
来源:互联网 发布:sql工程师培训 编辑:程序博客网 时间:2024/05/29 02:13
队列是一种特殊的链式存储结构,具有“先进先出”的特点,对队列进行操作,只能在队列的尾部(rear)进行插入操作,在队列的头部(front)进行删除。判断队列是否为空的条件是rear=front。生活中队列思想的应用广泛存在,例如排队等待服务,数据处理等。
下面,将简单实现队列的初始化、插入删除以及输出队列元素的操作。实现代码如下。
#include<iostream>
using namespace std;
struct lists
{
int data;
lists *next;
};
struct point
{
lists *front;
lists *rear;
int size;
};
point s;
void init()
{
lists *p=(lists*)new lists, *news;
int x, n;
cout << "输入队列长度:";
cin >> n;
for (int i = 1; i <= n; i++)
{
news = (lists*)new lists;
cout << "输入第" << i << "个元素:";
cin >> x;
news->data = x;
news->next =NULL;
if (i == 1)
{
p = news;
s.front = p;
s.rear = s.front;
}
else
{
p->next = news;
p = news;
s.rear = p; //尾指针指向最后一个元素而不是最后一个元素的下一元素;
}
}
}
void insert()
{
lists *news=(lists*)new lists;
int x;
cout << "要插入的数字是:";
cin >> x;
news->data = x;
news->next = NULL;
s.rear->next = news;
s.rear = news;
}
void dele()
{
lists *p;
p = s.front;
s.front = p->next;
cout << "删除队列第一个元素:";
cout << p->data<<endl;
free(p);
}
void output()
{
lists *p;
p = s.front;
cout << p->data<<" ";
do
{
p = p->next;
cout << p->data << " ";
} while (p->next!=NULL);
cout << endl;
}
int main()
{
init();
cout << "输出队列:";
output();
insert();
cout << "输出插入新元素后的队列:";
output();
dele();
cout << "删除头结点后的队列是:";
output();
return 0;
}
- 队列的实现---数据结构学习(五)
- 数据结构入门(五)-队列的定义与实现
- 数据结构(五):队列
- 五.学习数据结构之队列
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- 数据结构学习三(一个简单的队列实现)
- 数据结构学习之队列的数组实现
- 数据结构学习笔录---队列的实现
- 数据结构学习---队列的链式储存实现
- 数据结构学习之队列的Java实现
- 数据结构学习五(稀疏矩阵的实现,三元组)
- (郝斌讲学)数据结构学习篇(五)---队列的CRUD操作
- 数据结构之队列(五)
- 数据结构 队列的实现
- 数据结构:队列的实现
- 【数据结构】 队列的实现
- 数据结构:队列的实现
- Java之File类及递归树形展示目录_20150804
- javaScript对象
- MYSQL问题解决方案:安装过程中无法start service...
- Activiti 学习记录1 inclusiveGateway与 exclusiveGateway的区别
- Docker源码分析(六):DOCKER DAEMON网络
- 队列的实现---数据结构学习(五)
- C语言函数的调用
- iOS中添加Cordova到已存在的Xcode 工程
- JVM实用参数(八)GC日志
- 网络流&二分图学习总结
- Apache Vysper
- SQL的内连接与外连接
- MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
- 57.加载json文件 webview加载网页