③ TOP=TOP-1,结束(栈指针减1,指向栈顶)。定义stack的简单代码:stack myStack; 入栈:myStack.push(x); 出栈:myStack.pop(); 栈顶元素:myStack.top(); 判断栈的大小:myStack.siz栈空时,栈顶指针top = -1;栈满时,栈顶指针top = MAXSIZE -1。入栈前,栈顶指针加1;出栈后,栈顶指针减1。2.顺序栈的操作(1) 初始化初始化栈就是要构造一个空栈voidInitStack(S
∪﹏∪ 初值top0=0,top1=Maxsize,都指向的是存在的元素,说明这次进行第一次压栈操作时不需要先变化栈顶指针,那么我们可以得到在这种情况下压栈不需要先变化指针,而是top 表示栈顶指针stackSize 表示栈当前可以使用的最大容量若base的值是NULL,表示栈结构不存在;top初始值指向栈底,即top = base; 每当插入新的元素时,指针to
∪ω∪ 顺序栈中我们定义一个top指针,其实这里只是个游标,对应着栈顶元素的下标,比如top是0,那栈顶元素下标就是0,表示只有一个0号元素,通常规定如果top等于-1,表示空栈。见下图所示,一个1号出栈:x=s[- -top1] 2号出栈:s[++top2]=x 栈满:top2-top1 == 1 二、队列1、链式队列空队:头尾指针都指向一个空节点入队:front指针充当头结点(无数据),rear
Status; typedef int Elemtype; typedef struct SqStack{ Elemtype *base; //栈底指针,始终指向栈底的位置Elemtype *top; //栈顶指针,可以指向栈顶元素下一个首先令top指向当前栈顶元素,这样进来一个新的元素时,新元素不能占据当前top指向的位置,需要把top指针挪一挪,一般是top++,但不排除题目中设计的是top–,不管怎
每当插入新的栈顶元素时,指针top加1;删除元素时,指针top减1。stacksize为栈可使用的最大容量。3.2顺序栈操作实现3.2.1初始化顺序栈的初始化操作就是为顺但如果栈顶指针初始化为S.top = 0;即top指针指向栈顶元素的下一位置,则入栈操作变为S.data[S.top ++] = x;出栈操作变为x = S.data[--S.top]; 3. 共享栈利用栈底位置相对不变的特性