线性结构--->栈的顺序存储实现
来源:互联网 发布:trittec防霾窗纱 知乎 编辑:程序博客网 时间:2024/04/28 22:12
- 栈的顺序存储
- 算法介绍
- 第一次代码实现2016年-9月-20号
- 算法介绍
- 仅供参考 有错误望指出
栈的顺序存储
算法介绍
感觉顺序存储没什么难的… 感觉难的都在 栈的应用上, 或者来几道 ACM 的题
简单写三了个算法创建
压栈
出栈以后的有时间再补充
第一次代码实现——–2016年-9月-20号 ———–
一开始是想按照严太太书上的写, 但是写着写着感觉不对劲, 感觉心累, 为什么在 struct 里面定义那么多指针类型干嘛, 后面的代码虽然简洁, 非常实用, 但是感觉 对我不适合, 于是学习了 <<大话数据结构>> 这本书里面的.感觉也很棒!!!!这次没有加注释...会补上的......
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define true 1#define false 0#define STACKSIZE 4#define STACKINCREMENT 2typedef int ElemType;typedef int Position;typedef int Status;typedef struct Node{ ElemType *pBase; Position top; int stackSize;} Node, *Stack;Status initStack(Stack S);Status push(Stack S, ElemType e);Status pop(Stack S, ElemType *e);int main(){ int i; ElemType e; Stack S = (Stack)malloc(sizeof(Node)); if(S == NULL){ printf("Memory allocation failed, program termination!!\n"); exit(-1); } initStack(S); //压栈 push(S, 0); push(S, 1); push(S, 2); push(S, 3); push(S, 4); //出栈 pop(S, &e); return 0;}Status initStack(Stack S){ S->pBase = (ElemType*)malloc(sizeof(ElemType)*STACKSIZE); if(S->pBase == NULL){ printf("Memory allocation failed, program termination!!\n"); exit(-1); } S->top = -1; S->stackSize = STACKSIZE; return true;}Status push(Stack S, ElemType e){// if(S->top >= S->stackSize - 1){// printf("栈已满, 压栈失败!!!\n");// return false;// } if(S->top >= S->stackSize -1){ S->pBase = (ElemType*)realloc(S->pBase, sizeof(ElemType)*(STACKSIZE+STACKINCREMENT)); if(S->pBase == NULL){ printf("Memory allocation failed, program termination!!\n"); exit(-1); } S->stackSize += STACKINCREMENT; } printf("S->top 的值是: %d", S->top); S->pBase[(++S->top)] = e; printf("压栈成功\n"); return true;}Status pop(Stack S, ElemType *e){ if(S->top <= -1){ printf("栈已空, 出栈失败!!!\n"); return false; } *e = S->pBase[(S->top)--]; printf("出栈成功: %d\n", *e); printf("S->top 的值是: %d", S->top); return true;}
仅供参考 ,有错误望指出.
有大神路过请指点一下。 菜鸟求飞 !!!
有什么疑问 也可以在 下边 提问 ! (有点托大了)或者发邮件
E-Mail:ppbboddqq.qq@qq.com
0 0
- 线性结构--->栈的顺序存储实现
- 线性结构的顺序存储的实现
- 栈是顺序存储的线性结构()
- 线性表的顺序存储结构的实现
- 线性表的存储结构---顺序表的实现
- 线性表的顺序存储结构的c语言实现
- 线性表的顺序存储结构的表示和实现
- 线性表的顺序存储结构的C++类实现
- 顺序存储结构线性表的C语言实现
- 用c++实现线性表的顺序存储结构
- 用C语言实现线性表的顺序存储结构
- 线性表顺序存储结构的c语言实现
- PHP实现线性表的顺序存储结构
- 线性表的实现(一)顺序存储结构
- 线性表的顺序存储结构和实现
- 用Java实现线性表的顺序存储结构
- C++ 线性表顺序存储结构的实现
- 线性表的顺序存储结构--用数组实现
- python学习
- 二级列表的使用
- ANDROID STUDIO 2.2 来啦
- 大数据Spark “蘑菇云”行动第50课程 Spark 2.0项目概述 项目!!!大项目!!!超大型大数据项目!!!
- 堆和栈的区别(转过无数次的文章)
- 线性结构--->栈的顺序存储实现
- static,auto,register,extern的区别;
- Spring读取properties配置文件
- LintCode:Sqrt(x) x的平方根
- Android7.0 MessageQueue
- Hibernate常见错误分析(一)
- SimpleAdapter 使用
- 牛人博客之--创造晴天专栏-Android调试开发
- BOM