2011年贵州省数据整理纲要
1、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>} 写出G的拓扑排序的结果。
G拓扑排序的结果是:V1、V2、V4、V3、V5、V6、V7
2、题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序,注意在排序时若有元素移动,则与之相应的行中各元素也必须做相应变动。
void Translation(float *matrix,int n)
//本算法对n×n的矩阵matrix,通过行变换,使其各行元素的平均值按递增排列。 {int i,j,k,l;
float sum,min; //sum暂存各行元素之和
float *p, *pi, *pk;
for(i=0; i<n; i++)
{sum=0.0; pk=matrix+i*n; //pk指向矩阵各行第1个元素.
for (j=0; j<n; j++){sum+=*(pk); pk++;} //求一行元素之和.
*(p+i)=sum; //将一行元素之和存入一维数组.
}//for i
for(i=0; i<n-1; i++) //用选择法对数组p进行排序
{min=*(p+i); k=i; //初始设第i行元素之和最小.
for(j=i+1;j<n;j++) if(p[j]<min) {k=j; min=p[j];} //记新的最小值及行号. if(i!=k) //若最小行不是当前行,要进行交换(行元素及行元素之和) {pk=matrix+n*k; //pk指向第k行第1个元素.
pi=matrix+n*i; //pi指向第i行第1个元素.
for(j=0;j<n;j++) //交换两行中对应元素.
{sum=*(pk+j); *(pk+j)=*(pi+j); *(pi+j)=sum;}
sum=p[i]; p[i]=p[k]; p[k]=sum; //交换一维数组中元素之和.
}//if
}//for i
free(p); //释放p数组.
}// Translation
[算法分析] 算法中使用选择法排序,比较次数较多,但数据交换(移动)较少.若用其它排序方法,虽可减少比较次数,但数据移动会增多.算法时间复杂度为O(n2).
3、后序遍历最后访问根结点,即在递归算法中,根是压在栈底的。采用后序非递归算法,栈中存放二叉树结点的指针,当访问到某结点时,栈中所有元素均为该结点的祖先。本题要找p和q 的最近共同祖先结点r ,不失一般性,设p在q的左边。后序遍历必然先遍历到结点p,栈中元素均为p的祖先。将栈拷入另一辅助栈中。再继续遍历到结点q时,将栈中元素从栈顶开始逐个到辅助栈中去匹配,第一个匹配(即相等)的元素就是结点p 和q的最近公共祖先。
typedef struct
{BiTree t;int tag;//tag=0 表示结点的左子女已被访问,tag=1表示结点的右子女已被
2011年贵州省数据纲要_韩语学习_外语学习_教育专区。2011年贵州省数据纲要 1、冒泡排序算法是把大的元素向上移(气泡的上浮) ,也可以把小的元素向下移(气泡的下 ...
2011年贵州省数据统计纲要_韩语学习_外语学习_教育专区。2011年贵州省数据统计纲要 1、假设以 I 和 O 分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和...
2011年贵州省数据纲要_韩语学习_外语学习_教育专区。2011年贵州省数据纲要 1、冒泡排序算法是把大的元素向上移(气泡的上浮) ,也可以把小的元素向下移(气泡的下 ...
2011年贵州省重要数据纲要_韩语学习_外语学习_教育专区。2011年贵州省重要数据纲要 1、假设以 I 和 O 分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和...
2011年贵州省数据概述纲要_韩语学习_外语学习_教育专区。2011年贵州省数据概述纲要 1、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,...
2011年贵州省数据理论纲要_韩语学习_外语学习_教育专区。2011年贵州省数据理论纲要 1 、已知有向图 G=(V,E) ,其中 V={V1,V2,V3,V4,V5,V6,V7} E={<V...
2014年贵州省数据整理纲要_韩语学习_外语学习_教育专区。2014年贵州省数据整理纲要 1、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。 当 n=1 ...
2011年贵州省数据库入门纲要_韩语学习_外语学习_教育专区。2011年贵州省数据库入门纲要 1、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶...
2011年贵州省数据整理要领_演讲/主持_工作范文_实用文档。1、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。 ...
2011年贵州省数据整理要领_解决方案_计划/解决方案_实用文档。1、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针...

我要评论