数据结构-栈
来源:互联网 发布:谁用过网络麻将开挂 编辑:程序博客网 时间:2024/06/05 18:40
栈的基本算法的实现:
MyStack.h
class MyStack{public: MyStack(int size); //分配内存初始化栈空间,设定栈容量,栈顶 ~MyStack(); //回收栈空间内存 bool stackEmpty(); //判定栈是否为空 bool stackFull(); //判定栈是否满 void clearStack();//清空栈 int stackLength();//已有元素的个数 bool push(char elem); //元素入栈,栈顶上升 bool pop(char *elem); //元素出栈,栈顶下降 void stackTraverse();//遍历栈中所有元素private: int m_iTop; //栈顶int m_iSize; //栈的空间长度char *m_pBuffer; //栈空间};
MyStack.cpp
#include"MyStack.h"#include<iostream>using namespace std;MyStack::MyStack(int size){m_iSize=size;m_pBuffer=new char[m_iSize]; m_iTop=0;}MyStack::~MyStack(){ delete []m_pBuffer;}bool MyStack::stackEmpty(){ if(m_iTop==0){cout<<"栈为空"<<endl;return true;}elsereturn false;}bool MyStack::stackFull(){ if(m_iTop>=m_iSize) { return true; } else return false;}void MyStack::clearStack(){ m_iTop=0;}int MyStack::stackLength(){return m_iTop;}bool MyStack::push(char elem){if(stackFull()){cout<<"栈已满,无法压入"<<endl;return false;}else{m_pBuffer[m_iTop]=elem;m_iTop++;return true;}}bool MyStack::pop(char *elem){if(stackEmpty()){cout<<"栈为空,无法推出"<<endl;return false;}else{m_iTop--;*elem=m_pBuffer[m_iTop];return true;}}void MyStack::stackTraverse(){for(int i=0;i<m_iTop;i++){cout<<m_pBuffer[i]<<" ";}cout<<endl;}
main.cpp
#include<iostream>#include<stdlib.h>#include"MyStack.h"using namespace std;void main(){MyStack *stack=new MyStack(5);char temp=' ';stack->push('a');stack->push('b');stack->push('c');stack->push('d');stack->push('e');stack->push('f');stack->stackTraverse();cout<<"栈的长度:"<<stack->stackLength()<<endl;stack->pop(&temp);cout<<"第一个出栈元素:"<<temp<<endl;stack->pop(&temp);cout<<"第二个出栈元素:"<<temp<<endl;stack->pop(&temp);cout<<"第三个出栈元素:"<<temp<<endl;stack->pop(&temp); cout<<"第四个出栈元素:"<<temp<<endl;stack->pop(&temp); cout<<"第五个出栈元素:"<<temp<<endl;stack->pop(&temp); cout<<"第六个出栈元素:"<<temp<<endl;system("pause");}运行结果如下:
0 0
- 数据结构---栈
- 数据结构-栈
- 数据结构 栈
- 数据结构--栈
- 数据结构 栈
- 数据结构(栈)
- 数据结构栈
- 数据结构-栈
- 数据结构-----栈
- 数据结构-栈
- 【数据结构】栈
- 数据结构---->栈
- 数据结构---栈
- 数据结构--栈
- 数据结构----栈
- 数据结构--栈
- 【数据结构】 栈
- 数据结构 -- 栈
- cesuim自学(一):环境搭建
- lintcode刷题10.27
- android最基础简单的ListView实现方法
- 进程调度之FCFS
- ⑤盲注
- 数据结构-栈
- 选择排序,冒泡排序,二分搜索,插入排序,归并排序
- TS数据结构分析
- 学习笔记: 树的遍历
- Android listview加载数据后没有立即刷新的解决办法
- Linux –进程通信--信号
- Solr-----8、Solr使用JNDI配置DataImportHandler的数据源
- 进程的相关知识
- Qt creator中配置opencv win7 64bit