栈的c语言实现
来源:互联网 发布:ppsspp mac版本 编辑:程序博客网 时间:2024/05/01 13:48
C语言实现代码
#include<iostream>using namespace std;#define STACK_INIT_SIZE 10#define STACKINCREMENT 10#define ElemType inttypedef struct{ElemType *base;int top;size_t capacity;}SqStack;bool IsFull(SqStack *st){return st->top >= st->capacity;}bool IsEmpty(SqStack *st){return st->top == 0;}bool InitStack(SqStack *st){st->base = (ElemType*)malloc(STACK_INIT_SIZE * sizeof(ElemType));st->top = 0;st->capacity = STACK_INIT_SIZE;return true;}ElemType GetTop(SqStack *st){if(!IsEmpty(st)){return st->top;}cout<<"stack empty!"<<endl;return -1;}void Push(SqStack *st, ElemType item){if(!IsFull(st)){st->base[st->top++] = item;}else{cout<<"stack full!"<<endl;}}void Show(SqStack *st){for(int i=st->top-1; i>=0; --i){cout<<st->base[i]<<" ";}cout<<endl;}ElemType Pop(SqStack *st){if(!IsEmpty(st)){st->top--;return st->base[st->top];}return -1;}int main(){SqStack st;InitStack(&st);int i = 0;for(; i<5; ++i)Push(&st,i);Pop(&st);Show(&st);return 1;}
c++实现代码:
#include<iostream>using namespace std;#define ElemType int#define STACK_INIT_SIZE 10template<class _Ty>class stack{public:stack():top(-1),capacity(STACK_INIT_SIZE){base = new ElemType[capacity];}~stack(){delete []base;}bool IsEmpty(){return top == -1;}bool IsFull(){return top == capacity-1;}bool Push(_Ty item){if(!IsFull()){base[++top] = item;return true;}cout<<"stack full! increment base..."<<endl;return false;}bool Pop(){if(!IsEmpty()){base[top--];return true;}return false;}_Ty GetTop(){if(!IsEmpty()){return base[top];}return -1;}int Show(){int i =top;for(; i>=0; --i)cout<<base[i]<<" ";cout<<endl;return 1;}private:ElemType *base;int top;size_t capacity;};int main(){stack<int> st;int i = 0;for(; i<5; ++i)st.Push(i);st.Pop();st.Show();cout<<st.GetTop()<<endl;return 1;}
0 0
- 栈的C语言实现
- 栈的C语言实现
- C语言栈的实现
- 栈的C语言实现
- 栈的C语言实现
- 栈的c语言实现
- 栈的C语言实现
- 栈的c语言实现
- c语言栈的实现
- 栈的实现(C语言实现)
- 顺序栈的C语言实现
- 顺序栈的实现(C语言)
- C语言实现堆栈(栈)的数据结构
- 用c语言实现的链式栈
- 顺序栈的C语言实现
- C语言,简单栈的实现 Stack
- C语言 ----- 动态栈的算法实现
- 顺序栈的实现C语言
- 欢迎使用CSDN-markdown编辑器
- Maven实战(二)——POM重构之增还是删
- 编译也许会遇到Unable to launch cygpath. Is Cygwin on the path?如何解决?
- UIViewAlertForUnsatisfiableConstraints to catch this in the debugger
- java4Android(15)处理流的使用示例、装饰者设计模式、节点流和处理流的关系
- 栈的c语言实现
- nodejs中Async库介绍
- 2. 怎样取消文件和SVN服务器的关联
- C# 控制另一个窗体的方法
- 接触编程不到三个月的小白
- 将Matlab中的矩阵写入txt文件的方法
- 3. 导入新的一个android项目报错,详情见下面: Android requires compiler compliance level 5.0 or 6.0. Found'1.4' instea
- 关于MBProgressHUD显示问题
- jQuery mobile 入门笔记