Project1

标题: 数组不可以用递增递减符吗? [打印本页]

作者: 小怪兽奇奇侠    时间: 2023-4-9 22:00
标题: 数组不可以用递增递减符吗?
c语言执行出栈操作,既然是出栈操作,必然是先存栈顶数据后栈顶下移,请看这个c选项,我的理解是先从数组elem中取出s->top的元素内容(而非地址),随后s->top递减。
依旧是出栈,同样的做法换到双端栈上就不行了。难道是因为双端栈的栈顶有两个是用数组表示的缘故吗?
求解答!
(ps.我对于*x和x理解不是特别到位,*x在定义的时候表示x是指针变量,在调用的时候单写x表示该指针变量的地址,写*x表示该地址所存数据的内容,那么s->top的返回值是地址还是内容呢?)

作者: 小怪兽奇奇侠    时间: 2023-4-9 22:05
为了避免大家看不到图,我把两张图上的文字写出来。
第一张图:
已知顺序栈的地址为 s ,此时栈不空
且栈顶指示器 top 指向真实栈顶,执行出栈操作并将出栈元素赋值给 x 所指向的单元,则下列语句中,正确的是()
C选项内容:* x = s -> elem [ s -> top --];
(这是对的)

第二张图:
判断已知一个双端栈的地址为 dS ,则该双端栈不空时,1号栈(高端栈)出栈操作的语句是* x = dS -> stack [ dS -> top [1]--]
(这个语句是错的)
作者: 小怪兽奇奇侠    时间: 2023-4-9 22:13
本帖最后由 小怪兽奇奇侠 于 2023-4-10 18:49 编辑

哦,是我傻了,高端栈出栈是要++的呀。 那这道题的a应该没问题,为什么不能选啊?
----------------
咳咳,更新一下。
我问了小时候认识的,现在在北大上学的朋友,他说ac是等价的,应该是题目的问题。
作者: 哇哇哇啊叭叭    时间: 2023-4-10 10:49
好强!
  大佬,请把大腿赐下(拜服拜服)ORZ...(这是啥软件呀?)
作者: 小怪兽奇奇侠    时间: 2023-4-10 10:53
哇哇哇啊叭叭 发表于 2023-4-10 10:49
好强!
  大佬,请把大腿赐下(拜服拜服)ORZ...(这是啥软件呀?)

中国大学mooc,在上边报了一个数据结构的网课,这是它的随堂测验,向老师提问没人理我…有人能回答我一下3楼为什么不能选A吗?是不是题出错了呀?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1