问答题什么是循环队列?【哈尔滨工业大学2001三、2(3分)】【河南大学1998一、4(3分)】
问答题如果两个串含有相等的字符,能否说它们相等?【西安电子科技大学2000一、3(5分)】
问答题给出数组A:ARRAY[3..8,2..6]OF INTEGER;当它在内存中按行存放和按列存放时,分别写出数组元素A[f,j]地址计算公式(设每个元素占两个存储单元)。【南开大学1998一(8分)】
问答题我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。所谓“破圈法”就是“任取一圈,去掉圈上权最大的边”,反复执行这一步骤,直到没有圈为止。请给出用“破圈法”求解给定的带权连通无向图的一棵最小代价生成树的详细算法,并用程序实现你所给出的算法。注:圈就是回路。【复旦大学1997六(13分)】
问答题一棵h层、度为k(k>1)的树,最多有多少个结点?【北京科技大学2006】
问答题证明:一棵满k叉树上的叶子结点数加和非叶子结点数,m之间满足关系n0=(k-1)m+1。【北京交通大学2006四、1(5分)】
问答题下面的C函数实现对链表head进行选择排序的算法,排序完毕,链表中的结点按结点值从小到大链接。请在空框处填上适当内容,每个空框只填一个语句或一个表达式。【复旦大学1999六(1 5分)】
#include
typedef struct node{char data;struct node*link;)node ;
node*select(node*head)
(node*p,*q, *r,*s;
p=(node*)malloc(sizeof(node));
P一>link=head;head=p;
while(P一>link!=null)
(q=p->link;r=p;
while( (1) )
{if(q->link一>datalink一>data) r=q;
q=q->link;
}
if( (2) )
(s=r一>link;r一>link=s一>link;
S一>link=( (3) );
( (4) );
}
( (5) ) ;
}
p=head;head=head一>link;free(p);return(head);
}
问答题知广义表A=(((a)),(b),c,(a),(((d,e))))(1)画出其一种存储结构图;(2)写出表的长度与深度;(3)用求头部、尾部的方式求出e。【东北大学1997一、2(5分)】
问答题已知n个顶点的有向图,用邻接矩阵表示,编写函数,计算每对顶点之间的最短路径。【南京航空航天大学2001九(10分)】
问答题利用顺序表的操作,实现以下的函数:
问答题令G=(V,E)为一个有向无环图,编写一个给图G中每一个顶点赋以一个整数序号的算法,并满足以下条件:若从顶点i至顶点j有一条弧,则应使i<j。【清华大学1996七】
问答题下面是中序线索树的遍历算法,树有头结点且由指针thr指向。树的结点有五个域,分别为:数据域data,左、右孩子域lchild,rchild,左、右标志域ltag,rtag。规定标志域为1是线索,0是指向孩子的指针。请在空格处添上适当内容,每个空格只填一个语句。inorderthread(thr) (p=thr一>Ichild; while(——(1]——){ while(——(2)——) p=——(3)——; printf(p一>data); while(——(4)——){ p=p一>rchild;printf(p一>data);) p=——(5)——; } } 【中国海洋大学2007五(10分)】
问答题哈希表用__________确定记录的存储位置。【北京理工大学2005二、5(2分)】
问答题表插入排序的基本思想是在结点中设一指针字段,插入Ri时Rl到Ri一1已经用指针按排序码不减次序链接起来,这时采用顺序比较的方法找到Ri应插入的位置,做链表插入。如此反复,直到把Rn插入为止。【山东工业大学2000五(16分)】【山东大学1998五】(1)(6分)请完成下列表插入的算法; ①R[0]LINK←(1));R IN].LINl←(2); ②循环,I以一1为步长,从(3)到(4)执行A.p←R[0].LINK; Q←0B.循环,当P>0且(5) 时,反复执行 Q←P; P←(6)C.R[Q].LINK←I; R[I]LINK←p (2)(2分)表插入排序的最大比较次数是(7) ; (3)(2分)表插入排序的最小比较次数是(8) ; (4)(2分)记录移动的次数是(9); (5)(2分)需要附加的存储空间是(10); (6)(2分)该排序算法是否是稳定的(11)。
问答题检索是为了在文件中寻找满足一定条件的记录而设置的操作。检索可以按__________检索,也可以按__________检索;按__________检索又可以有__________检索和__________检索。【山东大学1999一、1(5分)】
问答题对单链表中元素按插入方法排序的C语言描述算法如下,其中L为链表头结点指针。请填充算法中标出的空白处,完成其功能。
typedef struct node
{int data; struct node*next;
}linknode,*link;
voidInsertsort(1ink L)
{link P,q,r,u;
p=L一>next;(1);
while((2) )
{r=L; q=n->next;
while((3) &&q一>datadata){r=q; q=q一>next;}
u=p一>nextj (4);(5);p=u;
}
}【北京科技大学2001二(10分)】
问答题试写出把图的邻接矩阵表示转换为邻接表表示的算法。【哈尔滨工业大学2002七(8分)】【中山大学1998五、2(10分)】【南开大学2000三、3】【北京邮电大学2006五、3(10分)】
问答题请写一非递归算法,该算法在按值严格递增排序的顺序表A【1…n】中采用折半查找法查找值不小于item的最小元素。若表中存在这样的元素,则算法给出该最小元素在表中的位置,否则,给出信息0。【北京航空航天大学2007年】
问答题每次使两个有序表合并成一个有序表,这种排序方法叫做__________排序。【哈尔滨工业大学2005一、6(1分)】
问答题设有一头指针为L的带有表头结点的非循环双向链表,其每个结点中除有pred(前驱指针)、data(数据)和next(后继指针)域外,还有一个访问频度域freq。在链表被起用前,其值均初始化为零。每当在链表中进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值增1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的Locate(L,x)运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针型。【清华大学1997二(10分)】【苏州大学2004四(15分)】【江苏大学2006四、2(13分)】