问答题设二维数组a[1一m,1.n]含有m*n个整数。(1)写出算法(Pascal过程或c函数):判断a中所有元素是否互不相同,输出相关信息(yes/no);(2)试分析算法的时间复杂度。【华中理工大学1999五(10分)】
问答题已知两个各包含N和M个记录的排好序的文件能在O(N+M)时间内合并为一个包含N+M个记录的排好序的文件。当有多于两个排好序的文件要被合并在一起时,只需重复成对地合并便可完成。合并的步骤不同,所需花费的记录移动次数也不同。现有文件F1,F2,F3,F4,F5,各有记录数为20,30,10,5和30,试找出记录移动次数最少的合并步骤。【重庆大学2000二、3】
问答题线性表有两种存储结构:一是顺序表,二是链表。试问:
问答题已知在一棵含有n个结点的树中,只有度七的分支结点和度为0的叶子结点,求该树含有的叶子结点数。【大连理工大学2005二、2(20/4分)】【江苏大学2004三、5(6分)】
问答题解答下面的问题:
问答题设正文串长度为n,模式串长度为m,则串匹配的KMP算法的时间复杂度为__________。【重庆大学2000一、4】
问答题已知由n一1个关键字组成的序列(K
1
,K
2
,K
3
…K
n-1
)是大顶堆,现在再增加一个关键字K
n
,要求将关键字序列(K
1
,K
2
,K
3
,…,K
n-1
,K
n
)重新调整为大顶堆。请完成以下要求:
(1)编写满足上述要求的算法。
(2)简述你所编写的算法的基本思想。
(3)分析你所编写的算法的时间复杂度。
【南京航空航天大学2006 7(5分)】【江苏大学2006四、1(12分)】
问答题假设二维数组A的维界为[一2…7,3…6],当它在内存中按行存放和按列存放时,分别写出数组元素A[i,j]的地址计算公式(设每个元素占两个存储单元)。
问答题设输入序列为a,b,c,d,试写出借助一个栈可得到的两个输出序列和两个不能得到的输出序列。【北京科技大学2001一、4(2分)】
问答题以归并算法为例,比较内部排序和外部排序的不同,说明外部排序如何提高操作效率。【华南师范大学1999四(10分)】
问答题将一组数据元素按散列函数H(key)散列到散列表H(0.m)中,用线性探测法处理冲突(H(key)+1、H(key)+2、…、H(key)一1),假设空单元用EMPTY表示,删除操作是将散列表中结点标志位从INIJSE标记为DELETED,试写出该散列表的查找、插入和删除三个基本操作算法。【北京邮电大学2001年】
问答题假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一个简单有向回路,若存在,则以顶点序列的方式输出该回路(找到一条即可)。(注:图中不存在顶点到自己的弧)【清华大学1994六(15分)】【吉林大学1997五(16分)】
问答题对于非空满k叉树,其分支结点数目为n,则其叶子结点数目为__________。【北京大学2005】
问答题文件由__________组成;记录由__________组成。【大连海事大学1996(2分)】
问答题串是一种特殊的线性表,其特殊性表现在(1) ;串的两种最基本的存储方式是(2)、(3);两个串相等的充分必要条件是(4)。【中国矿业大学2000一、3(4分)】
问答题设从键盘输入一整数的序列:al,a2,a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠一1时,将ai进栈;当ai=一1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。【南京航空航天大学1998年】
问答题设单链表的表头指针为h,结点结构由data和next两个域构成,其中data域为字符型。写出算法dc(h,n),判断该链表的前n个字符是否中心对称。例如:xyx、xyyx都是中心对称。【首都经贸大学1998年】
问答题设哈希(Hash)表的地址范围为0~17,哈希函数为:H(K)=K MOD 16,K为关键字,用线性探测再散列法处理冲突,输入关键字序列:(10,24,32,17,31,30,46,47,40,63,49),造出哈希表,试回答下列问题:
问答题完善下列程序,每小题在Pascal语言(a)和C语言(b)中任选一题。下面是一个将广义表逆置的过程。例如,原来广义表为((a,b),c,(d,e)),经逆置后为((e,d),c,(b,a))。 typedef:ruct glist:node {int:tag; 8truct:glistnode*next; union{char data; struct{struct gl~stnode*hp, *tp;)ptr; }val; }*gli8t,gnode; glist reverse(p) glist:p; {glist q,h,t,s; if(p==NULL) q=NuLL; else {if (1) {q=(gli8t)malloc(s~zeof(gnode));q一>tag=0; q一>Val.data=p->va1.data; } else{(2) if(3) {t=reVerse(p一>Tal.pt:r.tp);8=t; while(8一>Tal.pt:r.tp!=NULL) S---"S一>val.p七r.tp; 8一>val.ptr.tp=(glist:)malloc(sizeof(gnode)); S=S一>val-pt:2=.tp;s一>tag=1;s一>Val.ptr.tp=NULL; s一>val.ptr.hp=h;(4)} else{q=(glist:)malloc(sizeof(gnode))jq一>tag=1; q一>Tal.ptr.tp=NULL;(5);} } } return(q); }【上海大学2002六、3(10分)】
问答题在二叉树上进行前序遍历时,结点A在结点B之前,而在进行后序遍历时,结点A在结点B之后,那么结点A是结点B的祖先,对吗?为什么?【上海交通大学2003六(10分)】