3.设用一维数组s[m]表示栈的存储空间,用top指向当前栈顶元素(其初始值为-1),则进行出栈时的操作序列是()。①x=s[op];②x=s[top];top=0; ③x=s[top];top==top-1;④x=s[top];t当堆栈满了的时候,那么堆栈指针也是指向栈顶第一个元素(也就是最后一个入栈的元素)
ゃōゃ 下面在再讲讲栈顶指针top进行删除时,指向位置不同带来的差异。首先看一下初始时,top指针指向栈顶当前位置和下一个元素位置。如果指向当前位置,初始时栈中没有元素,那他就指向-1的由于栈顶指针永远指向栈顶元素的上面一个元素,所以栈顶指针并不指向栈顶元素,大部分时候是指向一个空的元素。当栈满时,栈顶指针将指向栈外。要注意的是,入栈时先赋值再让
stacktop=q; /*stacktop指向新的栈顶*/ ptr=(3 ) ; /*进入左子树*/ } q=stacktop; (4) ; /*栈顶元素出栈*/ visit(q); /*visit是访问结点的函数,其具体定义省但如果栈顶指针初始化为S.top = 0;即top指针指向栈顶元素的下一位置,则入栈操作变为S.data[S.top ++] = x;出栈操作变为x = S.data[--S.top]; 3. 共享栈利用栈底位置相对不变的特性
初始是栈顶设指针变量top 指向当前链式栈的栈顶,那么删除栈顶元素的操作序列为〔〕。A. top=top+1; B. top=top-1; C. top->next=top; D. top=top->next; 相关知识点:解析正确答案:
读栈顶元素boolGetTop(SqStack&S,ElemType&x){if(S.top==-1){//栈空,报错returnfalse;}x=S.data[S.top];returntrue;} 注意:若栈顶指针初始化为S.top = 0,即栈顶指针指向栈顶元素的设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为( )。A 30 B 29 C 20 D 19 查看答案解析全站作答712