数据结构|链栈的实现(实验3.2)
来源:互联网 发布:spark sql 官网 编辑:程序博客网 时间:2024/05/21 09:36
一、实验目的
1、熟练掌栈的结构特点,掌握栈的顺序存储结构和实现。
2、学会使用栈解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模,建立一个链栈,实现栈的压栈和出栈操作。
源代码如下:
#include<iostream> using namespace std; template < class T > struct Node { T data; Node<T> *next; }; template < class T > class LinkStack { public: LinkStack(T a[], int n) { top = NULL; Node<T> *node = NULL; for (int i = 0; i < n; i++) { node = new Node<T>; node->data = a[i]; node->next = top; top = node; } } ~LinkStack() { Node<T> *deleteNode = NULL; deleteNode = top; top = top->next; delete deleteNode; } void push(T x); T pop(); void print(); T gettop() { if (top != NULL) return top->data; } int Empty() { top == NULL ? return 1 : return 0; } private: Node <T> *top; }; template < class T > void LinkStack<T>::push(T x) { Node<T> *s; s = new Node<T>; s->data = x; s->next = top; top = s; } template < class T > T LinkStack<T>::pop() { T x; Node<T> *p; if (top == NULL)throw"下溢"; x = top->data; p = top; top = top->next; delete p; return x; } template <class T> void LinkStack<T>::print() { Node<T> *node = top; while (node->next != NULL){ cout << node->data << " "; node = node->next; } cout << node->data << endl; } void main() { int aa[] = { 1,2,3,4 }; cout << "对元素 1、2、3、4 依次入栈 " << endl; LinkStack<int> s(aa, 4); cout << " 栈内所有的元素为:"<< endl; s.print(); cout << "元素出栈为 " << s.pop() <<endl;cout<< "出栈结果为:" << endl; s.print(); cout << " 栈顶元素为:" <<s.gettop()<< endl; }运行结果如下:
阅读全文
0 0
- 数据结构|链栈的实现(实验3.2)
- 数据结构|链栈的实现(实验3.2)
- 数据结构|顺序栈的实现(实验3.1)
- 数据结构|顺序栈的实现(实验3.1)
- 数据结构|链队列的实现(实验3.4)
- 数据结构|链队列的实现(实验3.4)
- C语言数据结构链栈实现个位数计算式(数据结构第二次实验)
- 数据结构实验 约瑟夫环的循环链表实现
- 数据结构|顺序队列的实现(实验3.3)
- 数据结构|顺序队列的实现(实验3.3)
- 数据结构第三章实验2.实现链栈的各种基本运算
- 数据结构实验--------线性表的实现
- 数据结构实验--------主要排序算法的实现
- 【数据结构实验】约瑟夫环的实现
- 数据结构实验二--单链表的基本实现
- 数据结构实验2---表达式求值(“栈”实现)
- 数据结构实验:栈实现计算器(表达式计算)
- 数据结构实验之栈四:括号匹配(java实现)
- SpringMVC处理模型数据
- 手机移动网站自适应高度,手机网页图片自适应大小
- Java:求实数的绝对值
- [BZOJ3932][CQOI2015]任务查询系统 主席树
- Sophus 李群 --[SO3]
- 数据结构|链栈的实现(实验3.2)
- day02-持久层代码抽取
- 爬虫的综合案例
- 日记(周中)
- Android Study Material Design 二 之:这可能是RecyclerView最全解析 高级拓展 实现复杂布局(三)
- Linux上安装JDK+Mysql+Tomcat环境
- 配置vim
- Java基础面试——String“==”问题
- EL表达式使用fmt:formatNumber标签保留两位小数