部分高校使用anyview编程测试数据结构习题,此代码为数据结构题集(c语言版)严蔚敏版的课后习题答案.专门提供给在anyview上运行,全部为通告代码

源代码在线查看: 6.65.c

软件大小: 51 K
上传用户: evenxyz
关键词: anyview 代码 数据结构
下载地址: 免注册下载 普通下载 VIP

相关代码

				6.65④  已知一棵二叉树的前序序列和中序序列分别
				存于两个一维数组中,试编写算法建立该二叉树的二
				叉链表。
				
				要求实现以下函数:
				void BuildBiTree(BiTree &bt, int ps, char *pre, 
				                             int is, char *ino, int n);
				/* 当前要建立的子树bt的元素总数为n,*/
				/* 元素在前序序列pre的起始位置为ps,*/
				/* 元素在中序序列ino的起始位置为is  */
				
				二叉链表类型定义:
				typedef char TElemType;
				typedef struct BiTNode {
				    TElemType data;
				    BiTNode  *lchild, *rchild;
				} BiTNode, *BiTree;
				void BuildBiTree(BiTree &bt, int ps, char *pre, 
				                             int is, char *ino, int n)
				/* 当前要建立的子树bt的元素总数为n,*/
				/* 元素在前序序列pre的起始位置为ps,*/
				/* 元素在中序序列ino的起始位置为is  */
				{int i;
				 if(n==0)
				  bt=NULL;
				 else 
				  {for(i=is;i				    if(ino[i]==pre[ps])
				     break;
				   if(i==is+n)
				    bt=NULL;
				   else
				    {bt=(BiTNode*)malloc(sizeof(BiTNode));
				     bt->data=pre[ps];
				     if(i==is)
				      bt->lchild=NULL;
				     else
				      BuildBiTree(bt->lchild,ps+1,pre,is,ino,i-is);
				     if(i==(is+n-1))
				      bt->rchild=NULL;
				     else 
				      BuildBiTree(bt->rchild,ps+1+(i-is),pre,i+1,ino,n-(i-is)-1);
				    }
				  }
				}
							

相关资源