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

4.按图3.1(b)所示铁道(两侧铁道均为单项行驶道)进行车厢调度,回答:
(1)如进站的车厢序列为123,则可能得出的出站车厢序列是什么?(2)如进站的车厢序列为123456,能否得到435612和135426的出站序列,并说明原因(即写出以“S”表示进栈、以“X”表示出栈的栈操作序列)。6.给出栈的两种存储结构形式名称,在这两种栈的存储结构中如何判别栈空与栈满。
补充:编写算法,用顺序栈把输入的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。追问

补充题呢

追答

不知道你要求用什么方式写算法,是伪代码、流程图、文字描述哪一种,我刚才的回答提供了文字描述的算法了。

追问

c语言!

追答

#include
#include
int main()
{
char str[256];
int i=0;
gets(str);
while(str[i]!='\0')
i++;
i=i-1;
while(i>=0)
{
printf("%c",str[i]);
i--;
}
getchar();
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-04
1.123 231 213 321 132
2.435612 不可能因为1不会在2前出来
135426可以 1s1x2s3s3x4s5s5x2x6s6x

3.数组,TOP>N,TOP=0;追问

补充题呢

追答

楼上的打得不错哈...粗看应该是对的

相似回答