栈 函数的实现
来源:互联网 发布:mac 查杀进程 编辑:程序博客网 时间:2024/06/06 01:31
#ifndef _SEQSTACK_H#define _SEQSTACK_H#include<iostream>#include<assert.h>using namespace std;typedef int ElemType;#define STACK_INIT_SIZE 5#define STACKINCREMENT 2typedef struct Stack{ElemType *base; int top;int capacity;}Stack; bool IsFull(Stack *st)//判断栈满{ return st->top >= st->capacity;}bool IsEmpty(Stack *st)//判断栈空{return st->top == 0;}void InitStack(Stack *st)//初始化栈{st->base=(ElemType *)malloc(sizeof(ElemType)*STACK_INIT_SIZE);assert(st->base!=NULL);st->capacity = STACK_INIT_SIZE;st->top = 0;}bool Push(Stack *st, ElemType x)//进栈{if(IsFull(st)) st->base=(ElemType *)malloc(sizeof(ElemType)*(st->capacity+STACKINCREMENT));assert(st->base!=NULL);st->capacity+=STACKINCREMENT;st->base[st->top++] = x;return true;}bool Pop(Stack *st,ElemType *v)//用v接收出栈元素{{if(IsEmpty(st))cout<<"栈以空,不能出栈!"<<endl;return false;}*v = st->base[--st->top];return true;}ElemType GetTop(Stack *st)//取栈顶元素{if(IsEmpty(st)){cout<<"栈以空,不能出栈!"<<endl;} return st->base[st->top-1];}void clear(Stack *st)//清空栈{st->top=0;}void destroy(Stack *st)//销毁栈{free(st->base);st->base = NULL;st->top = 0;st->capacity = 0;}void ShowStack(Stack *st)//显示{for(int i=st->top-1; i>=0; --i){cout<<st->base[i]<<endl;}}#endif
0 0
- 栈 函数的实现
- 实现min函数的栈
- 栈实现的递归函数-有限状态机
- 实现包含min函数的栈
- 自己实现简单的栈操作函数
- zend函数中的参数的栈实现
- 包含min函数的栈 java实现
- 包含min函数的栈JAVA实现
- 包含min函数的栈java实现
- 虚函数的实现
- memcpy函数的实现
- strcpy函数的实现
- strcmp函数的实现
- strtok函数的实现
- atoi函数的实现
- memmove函数的实现
- 函数OMX_MasterInit()的实现
- OmxComponentFactoryDynamicCreate()函数的实现
- day13/MyTrim.java
- python映像和集合类型
- day13/StringBufferDemo.java
- day13/StringDemo.java
- WorkPlanning_7
- 栈 函数的实现
- day13/StringMethodDemo.java
- 提高第18课时,实践4,扑克牌
- 交换*号到第一位的partition算法和不改变数字位置的算法 scala版本
- android studio慢慢熟悉-好用的 设置 查找框
- 彻底分析block中的循环引用
- UVA LA3890 二分和半平面交
- python中出现的expected an indented block错误代码解析
- CSU1614:First Blood