精品文档---下载后可任意编辑第 2 章 线性表1
设指针变量 p 指向双向链表中结点 A,指针变量 q 指向被插入结点 B,要求给出在结点 A 的后面插入结点 B的操作序列(设双向链表中结点的两个指针域分别为 llink 和 rlink)
答:操作序列如下:q->rlink = p->rlink ; p->rlink = q ;q->rlink->llink = q ; q->llink = p ;注意答案不唯一 第 3 章 栈和队列1
设有编号为 1,2,3,4 的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆列车开出车站的所有可能的顺序
答:共计 14 种,分别是:1234, 1243, 1324, 1342, 1432, 2134, 2143, 2341, 2314, 2431, 3214, 3241, 3421, 43212
假如输入序列为 1,2,3,4,5,6,试问能否通过栈结构得到以下两个序列:4,3,5,6,1,2 和1,3,5,4,2,6;请说明为什么不能或如何才能得到
答:(1)不能得到 4,3,5,6,1,2 ;因为 1,2,3,4 入栈后;4,3 出栈;得到序列 4,3;栈中还有1,2;5 入栈后即出栈,得到序列 4,3,5;6 入栈后即出栈,得到序列 4,3,5,6;此时,栈中还有1,2;必须 2 先出栈,然后 1 再出栈,1 不可能在 2 之前出栈
故而得不到该序列
(2)能得到输出顺序为 1,3,5,4,2,6 的序列
得到的操作如下:1 入栈后即出栈,得到序列 1;2,3入栈后 3 即出栈,得到序列 1,3;4,5 入栈后,5 出栈,4 出栈,得到序列 1,3,5,4;2 出栈,得到序列1,3,5,4,2;6 入栈后即出栈,得到序列 1,3,5,4,2,6
假设正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba