问答题采用比较的方法,从具有n个元素集合中找出最大和次最大的元素,需要的最少比较次数为多少?说明理由和实现的方法。【上海交通大学2003七(10分)】
问答题编写一个算法来交换单链表中指针尸所指结点与其后继结点,HEAD是该链表的头指针,P指向该链表中某一结点。【吉林大学2001二、1(7分)】
问答题下列完全二叉树共有d层及n个结点,试在下图涂黑的结点(叶结点)上标上相应的序号(用d或n表示)。【浙江大学2004三(5分)】
问答题从STRINq-1单元起有一个字符串,串长在STRIN单元中。另在NUMB单元中有一数N。要求在字符串第N个字符后插入一个字符“?”。若N大于串长则不插入。
问答题假定折半查找表长为10的有序表:【华中科技大学2006年】
问答题外排序的基本操作过程是__________和__________。【西安电子科技大学1998二、3(3分)】
问答题下列是先序遍历二叉树的非递归子程序,请阅读子程序(C语言与Pascal语言过程功能完全相同,任选其一),填充空格,使其成为完整的算法。【同济大学2001三(10分)】
问答题在本章介绍的8086/8088指令中,哪些指令把寄存器SP作为指针使用?在8086/8088指令中,哪些指令把寄存器BP作为指针使用?
问答题设有广义表LS=((a,b,c),(d,e,f),取出原子e的运算是__________。【北京交通大学2005二、6(2分)】
问答题试给出二叉树的自下而上、自右而左的层次遍历算法。【吉林大学2001年】
问答题一个深度为七的,具有最少结点数的完全二叉树按层次,(同层次从左到右)用自然数依此对结点编号,则编号最小的叶子的序号是(1);编号是f的结点所在的层次号是(2)(根所在的层次号规定为1层)。【南京理工大学2001二、2(2分)】
问答题假设对于一个多项式(Polynomial)
P(x)=a
m-1
+a
m-2
+…+a
0
用长度为m的单链表表示为(t
m-1
,t
m-2
,t
m-3
,…,t
1
,t
0
)。其中,m是多项式P(x)中非零项(term)的个数,每一个t
i
(0≤i≤m-1)是P(x)的一个非零项,它由三个数据成员coef、exp和link组成,coef是系数(浮点型),exp是指数(整型),link是链接指针。各个项的指数e
i
按递减顺序排列:e
m-1
>e
m-2
>…>e
0
>0。
问答题有n个记录存储在带头结点的双向链表中,现用双向冒泡排序法对其按升序进行排序,请写出这种排序的算法(注:双向冒泡排序即相邻两趟排序向相反方向起泡)。
问答题S=“S
1
S
2
…S
n
”是一个长为N的字符串,存放在一个数组中,编程序将S改造之后输出:
(1)将S的所有第偶数个字符按照其原来的下标从大到小的次序放在S的后半部分;
(2)将S的所有第奇数个字符按照其原来的下标从小到大的次序放在S的前半部分;例如:S="ABCDEFGHI舭’则改造后的S为"ACEGIKLJHFDB"。【中科院计算所1995】
问答题在A址起有一个50字节长的字符串,请查找串中含有最后一个“?”字符字节相对A址的距离(设串中含有多个“?”号)。
问答题线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容:
(1)用最少的时间在表中查找数值为x的元素。 (2)若找到将其与后继元素位置相交换。
(3)若找不到将其插入表中并使表中元素仍递增有序。
问答题设增量序列为5、3、1,初始关键字序列为51、12、55、23、49、7、60、36、72、12,写出希尔排序过程及每趟排序结果。
问答题n个顶点的无向连通图的连通分量个数为__________个。【电子科技大学2005二、1(1分)】
问答题试编写一递归子程序,完成指数函数Xn的运算。X和n在主程序中给定。 (1)把其中的字母字符取出存放在ALPH起的单元中。 (2)把已取出的字母字串中重复的字符删除,并向前递补。 (3)在不重复的字母串中,把小写字母改为大写字母。如有重复的大写字母,先删除重复大写字母并由后续字符向前递补。 (4)统计不重复大写字母总数,并显示大写字母串。 (5)显示处理后的字符串。 按上述要求分别编写子程序。并构成一个主程序、子程序和具有嵌套调用关系的程序。
问答题已知下列各种初始状态(长度为n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)?
(1)关键字自小到大有序(key
1
<key
2
<…<key
n
);
(2)关键字自大到小逆序(key
1
>key
2
>…>key
n
);
(3)奇数关键字顺序有序,偶数关键字顺序有序(key
1
<key
3
)<…,key
2
<key
4
<…);
(4)前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key
1
<key
2
<…<key
m
,key
m+1
>key
m+2
>…>key
n
,m为中间位置)。
