一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是( )。
A. *S->top=e;S->top++; B. S->top++;*S->top=e;
C. *S->top=e D. S->top=e;
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
先赋值,再指针
入栈、先数据再指针
这题条件不够,如果初始top=-1,那么就是先移动指针再赋值;如果初始条件top=0,才是先赋值再移动指针。
没给top的初值选AB都可以的。
如果栈顶指针指-1,top不先加1怎么入栈
1. 顺序栈入栈: 存数据: 将新元素直接存入栈顶指针 top 当前指向的位置。 移指针: 将栈顶指针 top 加 1,指向下一个空闲位置,为下一次入栈做准备。 2. 链式栈入栈: 创建新节点: 创建一个新节点,将新元素存入节点的数据域。 修改指针: 将新节点的指针指向原栈顶节点,然后将栈顶指针指向新节点。
题出的有问题
快乐小土狗 回复 wmjim: 没有问题,书上top指针指向的栈顶元素的下一个位置
decade 回复 wmjim: 有问题,应该选b,入栈要先移动指针,后赋值
题的意思是指针指向栈顶元素,应该为先移动指针再放元素e;指针+1,再入栈
即初始化时指针top为-1
答案选项给出的条件应该为指针指向栈顶元素+1位置
即初始化时指针top为0
先看栈的top指针是指向栈顶元素,还是栈顶元素的下一个位置。
如果top指向栈顶元素,那么入栈时应该先修改指针再放元素;
如果top指向栈顶元素的下一个位置,那么入栈时应该先放元素再修改指针。
不应该是先移动top吗
admin 回复 Robber: 标准操作是先赋值再移动下标,可以看一下书上的代码
chongci211 回复 admin: 书上就是栈顶指针先加1,再送值到栈顶元素
此题不严谨,应加上条件,初始时将top定为0
admin 回复 非加力: 这个条件没有必要
栈不是需要申请新空间然后赋值吗?求大佬解答
zyjf 回复 我超白好嘛: 栈空间应该是被规定的,否则不会有溢出的说法
admin 回复 我超白好嘛: 注意审题,顺序栈,不是链式栈
A
C语言的顺序栈就是用数组...
登录后提交答案