顺序栈实现
来源:互联网 发布:通联数据股份公司电话 编辑:程序博客网 时间:2024/06/01 12:25
#include <iostream>using namespace std;namespace seqstack { const int kStackSize = 100; typedef char DataType; typedef struct { DataType data[kStackSize]; int top; }SeqStack; void InitStack(SeqStack *seq_stack) { memset(seq_stack, 0, sizeof(SeqStack)); seq_stack->top = -1; } bool StackEmpty(const SeqStack &seq_stack) { return seq_stack.top == -1; } bool StackFull(const SeqStack &seq_stack) { return seq_stack.top == kStackSize - 1; } void Push(SeqStack *seq_stack, DataType elem) { if (StackFull(*seq_stack)) { cout << "栈满" << endl; return; } seq_stack->data[++seq_stack->top] = elem; } DataType Pop(SeqStack *seq_stack) { if (StackEmpty(*seq_stack)) { cout << "栈空" << endl; exit(0); } DataType top_elem= seq_stack->data[seq_stack->top--]; return top_elem; } DataType GetTop(const SeqStack &seq_stack) { if (StackEmpty(seq_stack)) { cout << "栈空" << endl; exit(0); } return seq_stack.data[seq_stack.top]; } int Size(const SeqStack &seq_stack) { return seq_stack.top + 1; }}void PrintStack(seqstack::SeqStack *seq_stack) { cout << "["; int size = seqstack::Size(*seq_stack); for (int index = 0; index < size; ++index) { seqstack::DataType elem = seqstack::Pop(seq_stack); cout << elem << " "; } cout << "]" << endl;}int main() { seqstack::SeqStack seq_stack; seqstack::InitStack(&seq_stack); seqstack::Push(&seq_stack, 'a'); seqstack::Push(&seq_stack, 'b'); seqstack::Push(&seq_stack, 'c'); PrintStack(&seq_stack); return 0;}
0 0
- 栈的顺序实现
- C#实现顺序栈
- 顺序栈实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈简单实现
- c实现顺序栈
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈实现
- 顺序栈的实现
- 顺序栈的实现。。。。
- 顺序栈的实现
- 顺序栈的实现
- c实现顺序栈
- 栈-顺序表实现
- 顺序栈c++实现
- Ubuntu下使用Git_2
- iOS new 和alloc/init 的区别
- 【NOIP2016提高A组模拟9.9】运输妹子
- Android杂谈(13)使用Androidsudio进行单元测试
- Logback新版本报no applicable action for [Encoding]问题
- 顺序栈实现
- 微信公众号回调接口HttpServletRequest 操作
- 我的江湖也是你的江湖
- Maven的父子项目引用关系
- 和为S的两个数字
- Win8、Win10中不同进程间发送自定义消息失败
- 装饰器模式——爱江山更爱美人
- C++之类型萃取技巧
- 链表栈实现