/* 1、堆栈分为“顺序栈”(通过数组实现)和“链栈”(通过链表实现) 顺序栈主要通过数组来实现,用指向栈顶和栈底的两个指针来表示 2、堆栈是LIFO(LAST IN FIRST OUT)机制, 1 有将一个序列翻转出来的能力, 2 还有括号,符号匹配功能 3 可以实现递归(函数嵌套,保护上一层的参数进入下一层) 3、free只能释放最开始malloc的指针地址的内存,且必须是其头地址,指向中间的地址也不可行 4、 5、 */
#include<stdio.h> #define INITIALSIZE 100 #define INCREAMENT 10 #define OK 1 #define ERROR 0 typedef int Status;//表示返回的状态值 typedef int ElemType; //“顺序栈”堆栈的结构体定义,基于列表list的原理 //top为栈顶指针,base为栈底指针,size表示堆栈的目前的容量(不是堆栈中元素的个数) // typedef struct Stack { ElemType *top; ElemType *base; int size; }Stack; //初始化堆栈 //开始时top和base的地址一样,表明是空栈 //O(1) Status StackIntial(Stack &S) { S.base=(ElemType*)malloc(INITIALSIZE*sizeof(ElemType)); if(!S.b
堆栈Stack定义与操作
最新推荐文章于 2021-11-15 17:28:55 发布