2023年山东省分析数据高级

发布 2021-05-04 12:08:28 阅读 1893

1、设一棵树t中边的集合为,要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树。

2、二部图(bipartite graph)g=(v,e)是一个能将其结点集v分为两不相交子集v1和v2=v-v1的无向图,使得:v1中的任何两个结点在图g中均不相邻,v2中的任何结点在图g中也均不相邻。(1).请各举一个结点个数为5的二部图和非二部图的例子。

(2).请用c或pascal编写一个函数bipartite判断一个连通无向图g是否是二部图,并分析程序的时间复杂度。设g用二维数组a来表示,大小为n*n(n为结点个数)。请在程序中加必要的注释。

若有必要可直接利用堆栈或队列操作。【

3、题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序,注意在排序时若有元素移动,则与之相应的行中各元素也必须做相应变动。

void translation(float *matrix,int n)

/本算法对n×n的矩阵matrix,通过行变换,使其各行元素的平均值按递增排列。

sum=p[i]; p[i]=p[k]; p[k]=sum; /交换一维数组中元素之和。}/if}//for i

free(p); 释放p数组。}/translation

算法分析]算法中使用选择法排序,比较次数较多,但数据交换(移动)较少。若用其它排序方法,虽可减少比较次数,但数据移动会增多。算法时间复杂度为o(n2).

4、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。当n=1时,只有一个根结点,由中序序列和后序序列可以确定这棵二叉树。设当n=m-1时结论成立,现证明当n=m时结论成立。

设中序序列为s1,s2,,sm,后序序列是p1,p2,,pm。因后序序列最后一个元素pm是根,则在中序序列中可找到与pm相等的结点(设二叉树中各结点互不相同)si(1≤i≤m),因中序序列是由中序遍历而得,所以si是根结点,s1,s2,,si-1是左子树的中序序列,而si+1,si+2,,sm是右子树的中序序列。

若i=1,则s1是根,这时二叉树的左子树为空,右子树的结点数是m-1,则和可以唯一确定右子树,从而也确定了二叉树。若i=m,则sm是根,这时二叉树的右子树为空,左子树的结点数是m-1,则和唯一确定左子树,从而也确定了二叉树。

最后,当15、设指针变量p指向双向链表中结点a,指针变量q指向被插入结点b,要求给出在结点a的后面插入结点b的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。6、若第n件物品能放入背包,则问题变为能否再从n-1件物品中选出若干件放入背包(这时背包可放入物品的重量变为s-w[n])。若第n件物品不能放入背包,则考虑从n-1件物品选若干件放入背包(这时背包可放入物品仍为s)。

若最终s=0,则有一解;否则,若s<0或虽然s>0但物品数n<1,则无解。

1)s-w[n],n-1 //knap(s-w[n],n-1)=true(2)s,n-1knap←knap(s,n-1)

2023年广东省分析数据高级

1 设一组有序的记录关键字序列为 13,18,24,35,47,50,62,83,90 查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。2 冒泡排序算法是把大的元素向上移 气泡的上浮 也可以把小的元素向下移 气泡的下沉 请给出上浮和下沉过程交替的冒泡排序算法...

2023年青海省分析数据高级

1 设一棵树t中边的集合为,要求用孩子兄弟表示法 二叉链表 表示出该树的存储结构并将该树转化成对应的二叉树。2 矩阵中元素按行和按列都已排序,要求查找时间复杂度为o m n 因此不能采用常规的二层循环的查找。可以先从右上角 i a,j d 元素与x比较,只有三种情况 一是a i,j x,这情况下向j...

2023年广东省分析数据要领

1 假设k1,kn是n个关键词,试解答 试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为k1,k2,kn时,用算法建立一棵以llink rlink 链接表示的二叉查找树。2 数组a和b的元素分别有序,欲将两数组合并到c数组,使c仍有序,应将a和b拷贝到c,只要注意a和b数组指针的使...