2013年山西省数据理论深入

发布时间:   来源:文档文库   
字号:
1数组AB的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将AB拷贝到C只要注意AB数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。
voidunion(intA[],B[],C[],m,n
//整型数组AB各有mn个元素,前者递增有序,后者递减有序,本算法将AB归并为递增有序的数组C
{i=0;j=n-1;k=0;//ijk分别是数组A,BC的下标,因用C描述,下标从0开始while(i=0
if(a[i]while(iwhile(j>=0c[k++]=b[j--];}算法结束
4、要求二叉树按二叉链表形式存储。151)写一个建立二叉树的算法。2)写一个判别给定的二叉树是否是完全二叉树的算法。BiTreeCreat(//建立二叉树的二叉链表形式的存储结构{ElemTypexBiTreebt;
scanf(%d,&x;//本题假定结点数据域为整型if(x==0bt=null;elseif(x>0
{bt=(BiNode*malloc(sizeof(BiNode;
bt->data=x;bt->lchild=creat(;bt->rchild=creat(;}
elseerror(“输入错误”return(bt;}//结束BiTree
intJudgeComplete(BiTreebt//判断二叉树是否是完全二叉树,如是,返回1,否则,返0
{inttag=0;BiTreep=bt,Q[];//Q是队列,元素是二叉树结点指针,容量足够大if(p==nullreturn(1;
QueueInit(Q;QueueIn(Q,p;//初始化队列,根结点指针入队while(!QueueEmpty(Q
{p=QueueOut(Q;//出队
if(p->lchild&&!tagQueueIn(Q,p->lchild;//左子女入队
else{if(p->lchildreturn0;//前边已有结点为空,本结点不空elsetag=1;//首次出现结点为空if(p->rchild&&!tagQueueIn(Q,p->rchild;//右子女入队elseif(p->rchildreturn0;elsetag=1;}//while
return1;}//JudgeComplete
2G=(V,EV={V1,V2,V3,V4,V5,V6,V7}E={,,,,,,,,}写出G的拓扑排序的结果。
G拓扑排序的结果是:V1V2V4V3V5V6V7



本文来源:https://www.2haoxitong.net/k/doc/2e3c171228ea81c759f57885.html

《2013年山西省数据理论深入.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式