《数据结构(C语言版)——严蔚敏》(清华大学出版社)

作者:严蔚敏 吴伟民  出版社:清华大学出版社

题目 题型
若按教科书3.1.1节中图3.1(b)所示铁道进行车厢调度(注意:两侧铁道均为单向行驶道),则请回答: (1) 如果进站的车厢序列为123,则可能得到的出站车厢序列是什么? (2) 如果进站的车厢序列为123456,则能否得到435612和135426的出 问答
简述栈和线性表的差别。 问答
简述栈和线性表的差别。 问答
写出下列程序段的输出结果(栈的元素类型SElemType为char)。     void main()     {         Stack S;         char x,y;         InitStack(S);          问答
简述以下算法的功能(栈的元素类型SElemType为int)。 (1) status algo1(Stack S)     {             int i,n,A[255];             n=0;             while(! 问答
假设以S和X分别表示入栈和出栈的操作,则初态和终态均为空栈的入栈和出栈的操作序列可以表示为仅由S和X组成的序列。称可以操作的序列为合法序列(例如,SXSX为合法序列,SXXS为非法序列)。试给出区分给定序列为合法序列或非法序列的一般准则,并证明:两个不同的 问答
试证明:若借助栈由输入序列12…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着i<j<k使pj<pk<pi。 问答
按照四则运算加、减、乘、除和幂运算(↑)优先关系的惯例,并仿照教科书3.2节例3-2的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:             A-B×C/D+E↑F 问答
试推导求解n阶梵塔问题至少要执行的move操作的次数。 问答
试将下列递推过程改写为递归过程。     void ditui(int n)     {         int i;         i = n;         while(i>1)             cout<<i--;    问答
试将下列递归过程改写为非递归过程。     void test(int &sum)     {         int x;         cin>>x;         if(x==0) sum=0;         else    问答
简述队列和堆栈这两种数据类型的相同点和差异处。 问答
写出以下程序段的输出结果(队列中的元素类型QElemType为char)。     void main()     {         Queue Q;         InitQueue(Q);         char x= ‘e’, y= ‘c’; 问答
简述以下算法的功能(栈和队列的元素类型均为int)。     void algo3(Queue &Q)     {         Stack S;         int d;         InitStack(S);         whil 问答
若以1234作为双端队列的输入序列,试分别求出满足以下条件的输出序列: (1) 能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列。 (2) 能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列。 (3) 既不能由输入受限 问答