数据结构栈存储题目求解!

数据结构栈存储题目求解!,第1张

第4题
(1)可能的出栈顺序是 123(即1进栈就出栈,然后2进2出,再3进3出)
132(即1进1出,2进3进,3出2出)
213(即1进2进,2出1出,3进3出)
231(即1进2进,2出3进,3出1出)
321(即1进2进3进,3出2出1出)
(2)不能得到435612出栈顺序,因为按照进站的车厢序列为123456的话,进出栈顺序为1S2S3S4S4X3X5S5X6S6X2X1X,即1不可能在2之前出栈。
能得到135426的出站序列,即1S1X2S3S3X4S5S5X4X2X6S6X
第6题
一种存储方式用一维数组,通过判断当前数组下标值是否为最大值即判断是否栈满,是否为最小值判断是否栈空;一种用循环单项链表,通过判断表头与表尾指针是否一样判断栈满,判断指针是否为表头判断栈是否为空。
文字描述算法:
1、将字符串按顺序存入已经定义好的一维数组中;
2、输出时,数组下标定位在字符串结尾字符处,用循环实现依次减小下标值,输出对应下标的数组元素值,直到下标为0。

计算机中进栈顺序为abcde,则出栈顺序有dcbae、abcde、edcba3种。

栈的出栈是遵循先进后出的原则,abcde的进栈顺序并不是一次性的按照abcde入栈,也可能是先入栈一部分再出栈一部分在进行入栈,整体的入栈顺序是不变的依然是abcde。

出栈的元素顺序可以遵守的规律如下:

1、在原序列中相对位置比它靠前的,也就是比它先入栈的,出栈顺序必须是逆序;

2、在原序列中相对位置比它大的,也就是比它后入栈的,出栈顺序没有要求;

3、以上两点可以间插进行。

扩展资料:

栈是允许在同一端进行插入和删除 *** 作的特殊线性表。允许进行插入和删除 *** 作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。

这种问题有时候还只能是靠一步一步试试了不过就我个人看来,要找规律的话,也只能看第一个出栈的元素是什么了例如,第一个出栈的元素是f,那表示前面a,b,c,d,e都已经进栈了所以不管后面的元素如何进栈,反正其中a,b,c,d,e,的出栈顺序已经确定了只能e先所以LZ的这道题可以直接排除2,3


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13402609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存