跟着郝斌学数据结构(06)——队列(链式队列)
来源:互联网 发布:网络销售是做什么的 编辑:程序博客网 时间:2024/05/17 11:05
定义:一种可以实现先进先出的存储结构,分为链式队列(动态队列)和数组队列(静态队列)。
# include <iostream>using namespace std;typedef struct node{int data;struct node *pNext;}NODE, *PNODE;class Queue{public:Queue(){this->pHead = this->pTail = new NODE;this->pHead->pNext = NULL;}void InQueue(int val){PNODE pNew = new NODE;pNew->data = val;pNew->pNext = NULL;pTail->pNext = pNew; //将pNew挂到队列尾部 pTail = pNew; //注意是尾指针上移return;}bool Empty() const{if (this->pHead == pTail)return true;elsereturn false;}int OutQueue(){if (Empty()){cout <<"队列为空,无法出队!" << endl;}else{PNODE pTemp = pHead->pNext; //pHead不是要删除的队首元素,pHead->pNext所指向的元素才是要删除的元素,pHead->pNext = pTemp->pNext;int val = pTemp->data;delete pTemp;if (NULL == pHead->pNext) //如果队列为空{pTail = pHead; //尾指针也指向无用的头结点}return val;}}//遍历队列void Travers(void) const{PNODE pTemp = pHead->pNext;while (pTemp != NULL){cout << pTemp->data << " ";pTemp = pTemp->pNext;}cout << endl;}void Clear(){while (! this->Empty()){OutQueue();}}~Queue(){this->Clear(); delete pHead;}private:PNODE pHead, pTail; //pHead指向无用的头结点 pHead->pNext才是指向队首元素, pTail指向队尾元素};int main(void){Queue Q;for (int i=0; i<5; ++i)Q.InQueue(i+1);Q.Travers();Q.OutQueue();Q.OutQueue();Q.Travers();Q.Clear();Q.OutQueue();return 0;}
0 0
- 跟着郝斌学数据结构(06)——队列(链式队列)
- 跟着郝斌学数据结构(06)——队列(数组队列基本的一些问题)
- 数据结构——链式队列(c++)
- 数据结构——链式队列
- 数据结构队列(链式实现)
- 跟着郝斌学数据结构(10)——链式二叉树
- 数据结构——队列的链式实现(C语言)
- 跟着郝斌学数据结构(07)——队列(操作及应用)
- 数据结构之队列(顺序队列和链式队列)
- 《数据结构》严蔚敏版(java解)——第三章 栈和队列04 链式队列操作
- 【数据结构-队列】链式队列
- 数据结构(五)——双链表、链式栈、链式队列 及实现
- 数据结构(三)——双链表、链式栈、链式队列 及实现
- 数据结构——队列之链式存储
- 数据结构实现链式队列(C语言)
- 数据结构之链式队列(优化版)
- 数据结构学习之队列(链式存储)
- 数据结构之队列(链式存储)
- android UI——绘制加减号按钮
- mac 上代码托管到svn和github
- 排列组合(两种方法)
- uva10304(二维完全背包DP)
- 2016百度之星
- 跟着郝斌学数据结构(06)——队列(链式队列)
- 为什么要使用Servlet?
- 线程同步之利器(1)——可递归锁与非递归锁
- 神女峰
- “清心”(3)下位机wifi与stm32对接(闲扯不同工程师的风格)
- 欢迎使用CSDN-markdown编辑器
- SIFT算法详解
- C++编程---线程技术初识
- CharSequence类型