数据结构学习---队列的链式储存实现
来源:互联网 发布:淘宝店铺层级怎么计算 编辑:程序博客网 时间:2024/04/25 20:05
队列
简单的实现了push pop empty size;
和堆栈的链式实现一样,因为删除操作后需要执向下一个元素,所以队列的删除操作 pop 要在链表的头部实现
因为队列是 First In First Out,所以插入操作 push 要在链表尾插入。
【测试代码】
#include <cstdio>#include<iostream>#include<malloc.h>using namespace std;#define MaxSize 100typedef int ElementType;ElementType ERROR = -1;struct QNode{ ElementType Data;QNode *Next;};class LinkQueue{public:LinkQueue(){//建立新节点,并将储存队列的头、尾指针,指向这一块区域QNode* Q=(QNode*)malloc(sizeof(QNode)); Q->Data=0;Q->Next=NULL;rear=Q;front=Q;}bool empty(){if(front == rear){ //头尾相遇,则队列为空return true;}return false;}int size(){QNode* tmp=front;int sz=0;while(tmp!=rear){ //从“头”走到 “尾” 长度即为队列大小tmp=tmp->Next;sz++;}return sz;}void Push(ElementType X){QNode* LastCell=(QNode*)malloc(sizeof(QNode));LastCell->Data = X;LastCell->Next=NULL; //始终让结尾的Next为空rear->Next = LastCell;//原队尾 的Next赋值为新建立的节点rear=LastCell; //更新队尾}ElementType Pop(){QNode *FrontCell;ElementType FrontElem;//为了输出返回值而创立的临时节点 与变量if(empty()){cout<<"队列空"<<endl; return ERROR;}FrontCell = front; front = front->Next; //头结点始终不存数据,数据在头节点的下一个节点FrontElem = FrontCell->Next->Data;free(FrontCell);return FrontElem;}private:QNode *rear; //指向队列尾节点QNode *front; //指向队头节点};int main(){LinkQueue Q;Q.Push(4);Q.Push(5);Q.Push(5);cout<<"大小为:"<<Q.size()<<endl;cout<<Q.Pop()<<endl;cout<<Q.Pop()<<endl;cout<<Q.Pop()<<endl;cout<<Q.Pop()<<endl;cout<<"大小为:"<<Q.size()<<endl;return 0;}
1 0
- 数据结构学习---队列的链式储存实现
- [数据结构]链式队列的实现。
- 数据结构-链式队列的实现
- 数据结构---队列的链式实现
- 数据结构 - 队列的链式实现
- 数据结构学习之队列的链式存储的C++实现
- 数据结构之线性结构---队列 链式储存
- 线性结构--->循环队列的链式储存实现
- 数据结构学习----链式队列(Java实现)
- 数据结构的C实现_链式队列
- 队列的链式表示和实现(数据结构)
- java数据结构之链式队列的实现
- 数据结构-->队列的链式实现 ADT
- 数据结构和算法--队列的链式实现
- JAVA数据结构之链式队列的实现
- 数据结构基础【08】队列的链式实现
- 堆栈的链式储存实现
- 【学习点滴-数据结构-栈&队列】 链式队列的实现及应用
- 二叉搜索树与双向链表转化
- Leetcode Sort List
- 修炼
- POJ 1556 The Doors 计算几何+MST
- 五招防止QQ密码被盗
- 数据结构学习---队列的链式储存实现
- Repeater和Gridview的区别
- Object类、String类、StringBuffer类、StringBuilder类
- 无法打开包括源文件"extensions/cocos-ext.h"
- Kth Smallest Element in a BST
- 并查集详解
- django1.8 view(6): Built-in Views
- 【前端学习笔记】JQuery的基本思想、常用方法
- HDU 2077 汉诺塔IV