算法导论之栈
来源:互联网 发布:mac怎么去掉dashboard 编辑:程序博客网 时间:2024/06/10 04:48
栈的结构特点就是先进后出,在一些算法中会用到该数据结构,比如:进行二叉树的层序遍历的时候等。
下面给出栈的代码,代码使用vector存储栈中的元素。
头文件:
//name:myStack1.h#ifndef MY_STACK1_H#define MY_STACK1_H#include<vector>#include<iostream>//#define MAX_SIZE_S 1000using namespace std;using std::vector;template<typename T>class myStack1{private:vector<T> stack1; //栈的容器int top; //栈顶迭代器public:myStack1(){top = -1;}~myStack1(){ }//判断栈是否为空bool is_empty(){return stack1.empty();}void push(T value){++top;stack1.push_back(value);}void pop(){if (is_empty())cout << "stack is underflow" << endl;else{vector<T>::iterator it = stack1.end();--it;stack1.erase(it);--top;}}void display(){for (int i = 0; i <= top; i++)cout << stack1[i] << " ";cout << endl;}};#endif
测试代码:
//name:main.h#include"myStack1.h"int main(){vector<int> test_data = { 1, 2, 3, 4, 5 };myStack1<int> mystack = myStack1<int>();for (int i = 0; i < test_data.size(); i++)mystack.push(test_data[i]);mystack.display();mystack.pop();mystack.display();return 0;}
STL中关于Stack的函数不是很多:
empty():检测是否为空
top():返回栈顶的元素
push():入栈
pop():出栈
阅读全文
0 0
- 算法导论之栈
- 算法导论之六栈与队列
- 算法导论之九链表
- 算法导论之堆
- 算法导论之基础知识
- 算法导论之红黑树
- 排序算法之导论
- 算法导论之二叉排序树
- 算法导论之红黑树
- 算法导论之数据结构
- 算法导论之二项堆
- 算法导论之红黑树
- 算法导论之随机算法
- 算法导论之图算法
- 算法导论之快速排序
- 算法导论之散列表
- 【算法导论】之堆排序
- 《算法导论》学习之基数排序
- 阶乘
- java每日一练(金字塔算法实现)
- python入门基础----基本数据类型
- [2017纪中11-5]仔细的检查 树hash
- spring mvc4使用及json 日期转换解决方案
- 算法导论之栈
- ajax和json
- java环境设置
- 数据库索引详解
- c++ hook 钩子的使用介绍
- JDBC笔记
- 解决XML本地无法找到的问题
- next_permutation() 输出全排列
- shader学习之基础纹理透明效果