数据结构之栈和队列
来源:互联网 发布:红蚂蚁网络销售 编辑:程序博客网 时间:2024/05/22 07:53
链式队列c++代码:
#include<iostream>using namespace std;typedef int ElemType;struct QueueNode{ElemType data;QueueNode *next;};class ListQueue{private:QueueNode *front,*rear;public:ListQueue();~ListQueue();bool EnQueue(ElemType e);bool DeQueue(ElemType *e);bool Print();};inline ListQueue::ListQueue(){front = new QueueNode();rear = front;}inline ListQueue::~ListQueue(){QueueNode *p;while(front!=rear){p = rear;rear = rear->next;delete p;}delete front;}bool ListQueue::EnQueue(ElemType e)//入队{QueueNode *s = new QueueNode();if(!s)return false;s->data = e;s->next = NULL;rear->next = s;rear = s;return true;}bool ListQueue::DeQueue(ElemType *e)//出队{if(rear == front)return false;QueueNode *s = front->next;//当前节点*e = s->data;front->next = s->next;if(rear == s)rear = front;delete s;return true;}bool ListQueue::Print(){if(front == rear){cout<<"队列为空!"<<endl;return false;}cout<<"当前队列:";QueueNode *s = front;while(s != rear){s = s->next;cout<<s->data<<" ";}cout<<endl;}int main(){ListQueue *L = new ListQueue();for(int i = 1;i<5;i++){L->EnQueue(i);}L->Print();for(int i = 1;i<5;i++){ElemType k;L->DeQueue(&k);cout<<"出队元素:"<<k<<endl;L->Print();}return 0;}
链栈c++代码:
#include<iostream>using namespace std;typedef int ElemType;struct StackNode{//节点类型ElemType data;StackNode *next;};class ListStack{private:StackNode *base,*top;public:ListStack();~ListStack();bool Push(ElemType e);bool Pop(ElemType *e);bool Print();};inline ListStack::ListStack()//初始化{base = new StackNode();//建一个head节点,里面不存放数据base->next = NULL;top = base;}inline ListStack::~ListStack(){StackNode *p;while(top!=base){p = top;top = top->next;delete p;}}bool ListStack::Push(ElemType e){StackNode *s = new StackNode();if(!s)return false;//内存申请失败s->data = e;s->next = top;top = s;return true;}bool ListStack::Pop(ElemType *e){if(top == base)return false;//栈为空StackNode *p = top;*e = p->data;top = p->next;delete p;return true;}bool ListStack::Print(){if(top == base){cout<<"栈为空!"<<endl;return false;}cout<<"当前栈:";StackNode *p = top;while(p!=base){cout<<p->data<<" ";p = p->next;}cout<<endl;}int main(){ListStack *L = new ListStack();for(int i = 1;i<5;i++){L->Push(i);}L->Print();for(int i = 1;i<5;i++){ElemType k;L->Pop(&k);cout<<"弹出元素:"<<k<<endl;L->Print();}return 0;}
0 0
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 记SDOI2017 Round 1
- Swift数据类型(五)
- LintCode 二叉树的路径和
- iOS微信浏览器回退不刷新(监听浏览器回退事件)
- MySQL执行外部sql脚本文件的命令
- 数据结构之栈和队列
- C#操纵Excel-利用NPOI库
- Tensorflow的可视化操作
- LeetCode054 Spiral Matrix
- L1-027. 出租 java
- [BZOJ2844]albus就是要第一个出场 高斯消元+线性基
- 多线程客户端跟服务器
- HTTP协议学习笔记三
- IntelliJ IDEA 2016注册方法和注册码