2017年军事医学科学院实验仪器厂836计算机应用之数据结构考研导师圈点必考题汇编
● 摘要
一、填空题
1. 数据结构中评价算法的两个重要指标是_____。
【答案】算法的时间复杂度和空间复杂度
2. 设m 、n 均为自然数,m 可表示为一些不超过n 的自然数之和,f (m , n )为这种表示方式的 数目。例f (5, 3)=5,有5种表示方式:3+2, 3+1+1,2+2+1,2+1+1+1, 1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整。
②执行程序,f (6,4)=_____。 【答案】①1; 1; f (m ,n -1); n ②9
3. 顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。
【答案】物理上相邻;指针
【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。
4. 试利用下列栈和串的基本操作完成下述填空题。
initstack (S ) 置S 为空找; push (S , X ) 元素X 入找; pop (S ) 出栈操作; gettop (S ) 返回栈顶元素; sempty (S ) 判找空函数;
置串
为空串;
length (st ) 返回串st 的长度;
判串 返回联接
empty (st ) 判串空函数
{若给定的表达式的前缀式pre 正确,本过程求得和它相应的表达式exp 并返回true , 否则exp 为空串,并返回false 。已知原表达式中不包含括弧,opset 为运算符的集合。)
注意:毎个空格只填一个语句。 【答案】(1)(2)(3)(4)(5)(6)(7)exp (8)(9)exp (10)(11
)(12)
是否相等的函数;
之后的串;
sub (S , i , 1) 返回S 中第i 个字符;
栈S 初始化为空栈 串exp 初始化为空串 判取出字符是否是操作符
如ch 是运算符,则入操作符栈s 判栈8是否为空
若读出ch 是操作数且栈为空,则按出错处理
若ch 是操作数且栈非空,则形成部分中缀表达式
取栈顶操作符 操作符取出后,出栈
将pre 的最后一个字符(操作数)加入到中缀式exp 的最后
5. 外排序的基本操作过程是_____和_____。
;归并 【答案】生成有序归并段(顺串)
6. —棵左子树为空的二叉树在前序线索化后,其中的空链域的个数为 _____。
【答案】2
【解析】只有根结点的做指针为空和最右边的叶结点的右指针为空。
7. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。
【答案】(1)(2)(3)(4)(5)
置空链表,然后将原链表结点逐个插入到有序表中
当链表尚未到尾,p 为工作指针
查P 结点在链表中的插入位置,这时q 是工作指针
将P 结点链入链表中
是q 的前驱,u 是下个待插入结点的指针
表示,两栈顶指针为
则
8. 当两个栈共享一存储区时,栈利用一维数组当栈1空时
,
【答案】
为_____,栈2空时
,
为_____,栈满时为_____。
【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。
9. 关键码序列(Q ,H ,C ,Y ,Q ,A ,M ,S ,R ,D ,F ,X ),要按照关键码值递增的次序进行排序,若采用初始步长为4的希尔排序法,则一趟扫描的结果是_____; 若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是_____。
【答案】(Q ,A ,C ,S ,Q ,D ,F ,×,R ,H ,M ,Y ); (F ,H ,C ,D ,a ,A ,M ,Q ,R ,S ,Y ,X )
【解析】希尔排序的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。
快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以
相关内容
相关标签