栈的顺序存储的代码实现
来源:互联网 发布:mac怎么关闭桌面 编辑:程序博客网 时间:2024/04/28 05:00
#include<stdio.h>#include<stdlib.h>#define STACK_INIT_SIZE 100//存储空间初始分配量#define STACKINCREMENT 10//存储空间分配增量#define SElemType inttypedef struct{SElemType *base;//栈底SElemType *top;//栈顶指针int stacksize;//当前已分配的存储空间,以元素为单位;}SqStack;void InitStack(SqStack &s)//构建一个空栈s{s.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!s.base){printf("构建空栈时失败");exit(-1);}s.top=s.base;s.stacksize=STACK_INIT_SIZE;}void DestoryStack(SqStack &s)//销毁栈s {free(s.base);}void ClearStack(SqStack &s)//把s置为空栈 {s.top=s.base;}int StackLength(SqStack s)//栈中元素个数{return s.top-s.base;}bool StackEmpty(SqStack s)//判断一个栈是否为空{if(s.top==s.base)return true;elsereturn false;}void GetTop(SqStack s,SElemType &e)//用e返回栈顶元素{if(StackEmpty(s)){printf("栈空");exit (-1);}e=*(s.top-1);}void Push(SqStack &s,SElemType e)//插入新元素e{if(s.top-s.base>=s.stacksize)//栈满则追加存储空间{s.base=(SElemType*)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!s.base){printf("栈满时重新分配空间失败");exit(-1);}s.top=s.base+s.stacksize;s.stacksize+=STACKINCREMENT;}*s.top=e;s.top++;}void Pop(SqStack &s,SElemType &e)//删除栈顶元素并用e返回其值{if(StackEmpty(s)){printf("栈空\n");exit (-1);}e=*(s.top-1);s.top--;}void Visit(SqStack s)//从栈底到栈顶遍历{if(StackEmpty(s)){printf("栈空");exit(-1); }SElemType *p=s.base;while(p!=s.top){printf("%d ",*p);p++;}printf("\n");}int main(){int e;SqStack s;InitStack(s);Push(s,1);Push(s,2);Push(s,3);Visit(s);GetTop(s,e);printf("%d\n",e);Pop(s,e);Pop(s,e);printf("%d\n",e);ClearStack(s);Visit(s);DestoryStack(s);}
阅读全文
1 0
- 栈的顺序存储的实现代码
- 栈的顺序存储的代码实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储结构——顺序栈 图解和代码实现
- 栈的顺序存储结构——顺序栈 图解和代码实现
- c++ 顺序存储和链表存储 栈的实现代码
- 顺序栈的代码实现
- 栈的顺序存储结构的实现
- (严蔚敏版)数组的顺序存储表示和实现代码
- 栈的顺序存储结构---顺序栈的实现
- 栈的顺序存储实现和链式存储实现
- 栈的顺序存储结构实现
- CF-QAQ
- ceph集群维护记录
- 生活中图像处理的一个小应用
- BP神经网络:feedforwardnet版回归预测
- 用单向链表输入数据,逆序显示出
- 栈的顺序存储的代码实现
- PCA主成分分析
- Remove Element
- 第一章:对象导论
- WeaveSocket框架-Unity太空大战游戏-客户端-3
- EasyAR+Unity开发(一)HelloAR Demo配置
- POJ2236 Wireless Network(并查集)
- python爬取糗事百科段子
- sphinx的安装