数据结构(七)队列
2018-02-03 11:39
197 查看
1、队列需要具备的特性
队列和栈的底层实现数据结构可以是:数组、链表,只不过在此基础上,队列和栈需要重载两个函数:节点的插入与删除函数。队列只能从链表头删除节点,从链表末尾插入节点;
2、示例代码
#ifndef DATA_STRUCT_QUEUE_H
#define DATA_STRUCT_QUEUE_H
#include <iostream>
using namespace std;
class Queue{
class node{//链表节点
public:
node(int tvalue)
{
value=tvalue;
next=NULL;
};
~node(){};
node* next;
int value;
};
public:
Queue(){
qhead=NULL;
qrear=NULL;
};
~Queue(){};
//队列四大元素
node* qhead;//队头
node* qrear;//队尾
void push(int value)//插入队列元素的时候,主要是更新队尾
{
node * n1=new node(value);
if(!qhead){
qhead=n1;
qrear=n1;
return;
}
qrear->next=n1;
qrear=n1;
}
node * pop(){//出队列的时候,主要是更新队列头部
if (!qhead)
{
return NULL;
}
node* temp=qhead;
qhead=qhead->next;
return temp;
}
bool empty(){//队列弹出,要判断是否队列已经为空
return !qhead;
}
void main(){//用于测试
int data[10]={1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i <10 ; ++i) {
push(data[i]);
}
while(!empty())
{
node* n=pop();
std::cout<<n->value<<std::endl;
delete n;
}
}
};
#endif //DATA_STRUCT_QUEUE_H
队列和栈的底层实现数据结构可以是:数组、链表,只不过在此基础上,队列和栈需要重载两个函数:节点的插入与删除函数。队列只能从链表头删除节点,从链表末尾插入节点;
2、示例代码
#ifndef DATA_STRUCT_QUEUE_H
#define DATA_STRUCT_QUEUE_H
#include <iostream>
using namespace std;
class Queue{
class node{//链表节点
public:
node(int tvalue)
{
value=tvalue;
next=NULL;
};
~node(){};
node* next;
int value;
};
public:
Queue(){
qhead=NULL;
qrear=NULL;
};
~Queue(){};
//队列四大元素
node* qhead;//队头
node* qrear;//队尾
void push(int value)//插入队列元素的时候,主要是更新队尾
{
node * n1=new node(value);
if(!qhead){
qhead=n1;
qrear=n1;
return;
}
qrear->next=n1;
qrear=n1;
}
node * pop(){//出队列的时候,主要是更新队列头部
if (!qhead)
{
return NULL;
}
node* temp=qhead;
qhead=qhead->next;
return temp;
}
bool empty(){//队列弹出,要判断是否队列已经为空
return !qhead;
}
void main(){//用于测试
int data[10]={1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i <10 ; ++i) {
push(data[i]);
}
while(!empty())
{
node* n=pop();
std::cout<<n->value<<std::endl;
delete n;
}
}
};
#endif //DATA_STRUCT_QUEUE_H
相关文章推荐
- 信管16数据结构:第三章栈和队列的课前翻转学习任务
- 数据结构:单链队列--队列的链式存储结构
- 数据结构之队列和栈的使用
- 数据结构上机4队列-杨辉三角1
- 还债系列之数据结构——栈和队列
- 【NOIp复习】数据结构之栈、队列和二叉树
- 数据结构基础五-----《线性结构的两种常见应用之一 队列》
- 数据结构—队列
- 数据结构实验之栈与队列七:出栈序列判定
- 【2135】数据结构实验之队列一:排队买饭 sdutOJ
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构复习——队列解决报数问题
- 数据结构——队列,栈
- Java数据结构与算法—及实现 线性表 顺序表、链表、栈、队列详解
- C# 数据结构基础-实现循环队列
- 【单调栈】数据结构实验之栈与队列六:下一较大值(二)
- 【数据结构】顺序队列与链表队列
- 数据结构——队列
- 数据结构之队列
- 【数据结构】顺序队列