【数据结构】栈的应用之列车调度问题
问题
某铁路进行列车调度时,常把站台设计成栈式结构,如图1所示。设有编号为1,2,3,4的4辆列车,顺序开入栈式结构的站台,请回答以下问题:
图1 列车调度结构
1.简述栈的基本概念,并说明栈结构有什么特点?
答:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
栈结构的特点:
1).先进后出、后进先出
2).限定只能在表的一端进行插入和删除操作
3).只能从头部取数据 也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间。
2.根据题意,写出可能的出栈序列有多少种?出栈的序列分别是什么?
答:可能的出栈序列有14种;
出栈的序列分别是1234;1243;1324;1342;1432;2134;2143;2314;2341;2431;3214;3241;3421;4321。
分析:
1.列车4辆全部进站后顺序出站的情况(1种):4321
2.列车3辆车进站后开始出站(3种):3421,3241,3214
3.列车2辆车进站后开始出站(5种):2431,2341,2134,2143,2314
4.列车1辆车进站后开始出站(5种):1432,1324,1342,1234,1243