实验四 链栈
来源:互联网 发布:合肥编程培训班 编辑:程序博客网 时间:2024/05/22 00:44
一、实验目的
三、源代码
四、效果图
1、熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、学会使用栈和队列解决实际问题。二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、设计算法并写出代码,实现将一个十进制数转换成二进制数。三、源代码
头文件
#ifndef LinkStack_H#define LinkStack_Htemplate<class DataType>struct Node{ DataType data; Node<DataType> *next; }; template<class DataType>class LinkStack{public: LinkStack();/*构造函数*/ ~LinkStack();/*析构函数 释放链栈中各节点的存储空间*/ void Push(DataType x);/*入栈操作*/ DataType Pop();/*出栈操作*/ DataType GetTop(); /*取栈顶元素*/ int Empty();/*判空操作private: Node<DataType>*top;/*栈顶指针即链栈的头指针*/};#endif;源文件
#include"LinkStack.h"/*引入类LinkStack的声明*/template<class DataType>LinkStack<DataType>::LinkStack(){top=NULL;}template<class DataType>LinkStack<DataType>::~LinkStack(){Node<DataType>*q=NULL;while(top!=NULL){q=top;delete q;}}template<class DataType>void LinkStack<DataType>::Push(DataType x){Node<DataType>*s=NULL; s=new Node<DataType>;s->data=x; s->next=top;top=s;}template<class DataType>DataType LinkStack<DataType>::Pop(){Node<DataType>*p=NULL; if(top==NULL)throw"下溢";int x; x=top->data;p=top; top=top->next; delete p; return x;}template<class DataType>DataType LinkStack<DataType>::GetTop(){ if(top!=NULL) return top->data;}template<class DataType>int LinkStack<DataType>::Empty(){ if(top==NULL)return 1; else return 0;}
#include<iostream>using namespace std;#include"LinkStack.cpp"void main(){ LinkStack<int> L; if(L.Empty()) cout<<"栈为空"<<endl; else cout<<"栈非空"<<endl; cout<<"对20和12执行入栈操作"<<endl; L.Push(20); L.Push(12); cout<<"栈顶元素为:"<<endl; cout<<L.GetTop()<<endl; cout<<"执行依次出栈操作"<<endl; L.Pop(); cout<<"栈顶元素为:"<<endl; cout<<L.GetTop()<<endl;}
四、效果图
五、实验心得
参考实验书进行比照练习,需要勤加学习,认真搞懂代码含义
阅读全文
0 0
- 实验四 链栈
- 实验四——链栈
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- 实验四
- Android中出来崩溃异常捕获
- Eclipse运行报Errors occurred during the build解决方法
- redis可视化工具redis desktop manager无法连接的解决办法
- 前端开发要考虑的浏览器内核和CSS3前缀问题
- bzoj1221: [HNOI2001] 软件开发(费用流)
- 实验四 链栈
- JAVA Freemarker(8)--中include与import的区别
- P1280 尼克的任务
- 根据进程名称获取窗口句柄
- 【每天一个linux命令】cd
- 关系型数据库
- I.MX6 dts 在哪里、怎么编译
- JS中函数参数值传递和引用传递
- PCA分析美国城市生活质量,matlab实例