例、一叠书或一叠盘子。 栈的抽象数据类型的定义如下:P5 栈顶 栈底
例、一叠书或一叠盘子。 栈的抽象数据类型的定义如下:P45 a n a n-1 a2 a1 …… 栈顶 栈底
7654321 top
top 7654321- 1
EDcBA top top 0.9 nase
top用来指示当前栈顶的位置,通常称P为栈顶 指针。顺序栈的类型定义如下 #define stack Init size #define stacKincrement typedef struct( SElemType *base, SElemType *top int stacksize, B SqStack;
top用来指示当前栈顶的位置,通常称top为栈顶 指针。顺序栈的类型定义如下: #define STACK_INIT_SIZE #define STACKINCREMENT typedef struct{ SElemType *base; SElemType *top; int stacksize; }SqStack;
设S是 SqStack类型的指针变量。若栈底 位置在向量的低端,即s->base是栈底元 素,那么栈顶指针s->top是正向增加的, 即进栈时需将S→>top加1,退栈时需将s >top减1。s->top=s=>base表示空栈,s >top-s->base== stacksκe表示栈满。当栈满 时再做进栈运算必定产生空间溢出,简称 “上溢”;当栈空时再做退栈运算也将产生 溢出,简称“下溢”。上溢是一种出错状 态,应该设法避免之;下溢则可能是正常 现象,因为栈在程序中使用时,其初态或 终态都是空栈,所以下溢常常用来作为程 序控制转移的条件
设S是SqStack类型的指针变量。若栈底 位置在向量的低端,即s–>base是栈底元 素,那么栈顶指针s–>top是正向增加的, 即进栈时需将s–>top加1,退栈时需将s– >top 减1。s–>top==s->base表示空栈,s– >top-s->base ==stacksize表示栈满。当栈满 时再做进栈运算必定产生空间溢出,简称 “上溢” ;当栈空时再做退栈运算也将产生 溢出,简称“下溢”。上溢是一种出错状 态,应该设法避免之;下溢则可能是正常 现象,因为栈在程序中使用时,其初态或 终态都是空栈,所以下溢常常用来作为程 序控制转移的条件