严蔚敏 数据结构 栈 代码C语言实现 用C++编译器运行
2012-06-07 17:26
621 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #define OK 0; #define ERROR -1 #define OVERFLOW -2 #define YES 1 #define NO 0 #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 typedef int Status; typedef int TElemType; typedef BiTreeLk SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; //初始化栈 Status InitStack(SqStack &S) { S.base = (SElemType *)malloc(sizeof(SElemType)*STACK_INIT_SIZE); if(!S.base) exit(OVERFLOW); S.top = S.base; S.stacksize = STACK_INIT_SIZE; } //得到栈顶元素 Status GetTop(SqStack &S,SElemType &e) { if(S.top==S.base) return ERROR; e = *(S.top-1); return OK; } //压栈 Status Push(SqStack &S,SElemType e) { if(S.top-S.base>=S.stacksize) { S.base= (SElemType *)realloc(S.base, sizeof(SElemType)*(S.stacksize+STACK_INCREMENT)); if(!S.base) return ERROR; S.top = S.base+S.stacksize; S.stacksize += STACK_INCREMENT; } *S.top++ = e; return OK; } //出栈 Status Pop(SqStack &S,SElemType &e) { if(S.top==S.base) return ERROR; S.top--; e = *S.top; return OK; } Status StackEmpty(SqStack &S) { if(S.base == S.top) return YES; return NO; }
相关文章推荐
- 严蔚敏 数据结构 二叉树 代码C语言实现 用C++编译器运行
- 堆排序 HeapSort C语言实现 附严蔚敏数据结构P282 代码错误
- 数据结构 严蔚敏 清华大学出版社 第一章 抽象数据类型 三元组的实现 成功编译并运行
- C语言实现Huffman Tree(参考严蔚敏《数据结构》部分伪码)
- 数据结构 严蔚敏 清华大学出版社 第二章 抽象数据类型 链表的实现 成功编译并运行
- 数据结构-哈夫曼树C语言实现代码
- 严蔚敏版数据结构课本代码——链表结构实现算法2.2(BUCT-JK1602-LLP)
- 数据结构C语言实现之链式队列的6种算法代码
- C++类模板 实现队列的链式存储结构算法 《数据结构》(北京科海) 部分代码摘抄,自己编写运行
- 快速排序的C语言实现【严蔚敏--数据结构】
- 数据结构中栈与队列的c语言代码实现
- 平衡二叉树(AVL)的实现,附可运行C语言代码
- 栈的实现 (数据结构 严蔚敏 清华大学出版社 第三章 抽象数据类型 成功编译并运行)
- 一些可运行的C语言数据结构代码
- 数据结构线性表各种结构代码实现(C语言)
- 用C语言开发一个BT下载软件 (四) ------ 代码实现-3-出错处理模块和运行日志模块
- 严蔚敏版《数据结构》第二章线性表的算法C语言实现
- 数据结构(严蔚敏)之五——循环队列(c语言实现)
- C语言实现大整数乘法代码的完整代码及运行结果
- 数据结构 --静态队列的一个简单的C语言代码实现