- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                实验六二叉树及应用的实验
                    实验六  二叉树及应用的实验
【实验目的】掌握二叉树的左右链存储实现,二叉树的建立方法,二叉树的遍历算法,哈夫曼树的程序实现。
【实验说明】
存储结构定义及库文件
# include stdio.h
# include stdlib.h
# define TRUE 1 
# define FALSE 0
#define Stack_Size  50
 
typedef char DataType;
typedef  struct node {
	DataType  data;
	struct  node  *lchild,*rchild;
}BiTNode,*BiTree;
建立二叉树
void CreateBiTree(BiTree *bt )
  {  char  ch;
     ch=getchar();
     if(ch==.) *bt=NULL;
       else
			{
			*bt=(BiTree)malloc(sizeof(BiTNode));
			 (*bt)-data=ch;
			 CreateBiTree(((*bt)-lchild)); 
			 CreateBiTree(((*bt)-rchild));
			}
  }
先序递归遍历二叉树
void PreOrder(BiTree  root)
//root指向二叉树根结点
{ if(root!=NULL)
	{
	printf(%c,root-data);
	   PreOrder(root-lchild);
	   PreOrder(root-rchild);
	 }
}  
4、中序非递归遍历二叉树
void inorder(BiTree root)
 {  
    BiTNode  *p;
	int top;
	BiTree S[Stack_Size];
	top=0;
	p=root;
    //printf(ZYZ\n);
	do{
		while(p!=NULL)
		{ 
		if(topStack_Size-1) {printf(栈满\n);return;}
		else {top=top+1;
		      S[top]=p;
		      p=p-lchild;
			};
		}
		if (top!=0)
			{p=S[top];
			top=top-1;
			printf(%c,p-data);
			p=p-rchild;
		}
		}while(p!=NULL||top!=0);
 }
主控菜单处理调试程序
void main( )
{
BiTree T=NULL;
int xz=1;
char ch;
while(xz) {
	printf(  二叉树的建立及遍历\n);
	printf(==========================\n);
	printf( 1、建立二叉树存储结构   \n);
	printf( 2、二叉树的前序遍历(递归)\n);
	printf( 3、二叉树的中序遍历(非递归)\n);
printf( 0、退    出    系   统       \n);
	printf(===========================\n);
	printf(    请选择:0--3           );
	scanf(%d,xz);
	switch(xz) 
	{	case 0: printf(再见!\n);
		        return;
	    case 1:  ch=getchar();
			     printf(按扩展先序遍历序列输入二叉树各结点值:);
            CreateBiTree(T);
				  printf(\n二叉树的链式存储结构建立完成!\n);
				  printf(\n);
				  break;
		case 2: printf(二叉树先序遍历序列为:);
			   if(T)  PreOrder(T);
				else printf(\n空树);
			   printf(\n);
          printf(\n);
				 break;
		case 3: printf(二叉树中序遍历序列为:);
			     inorder(T);
				  printf(\n);
			      break;
	}
 }
return;
}//main
【实验内容】
⑴二叉树的遍历算法(非递归实现先序遍历,用递归实现中序遍历,用非递归实现后序遍历,层次遍历)
⑵二叉树采用二叉链表方式存储,找到二叉树中度为0的结点个数。
⑶二叉树采用二叉链表方式存储,找到二叉树中任两个结点的最近公
                您可能关注的文档
最近下载
- 消防管道(设备)强度、严密性试验记录.docx VIP
 - 耳穴比赛题库二维码公布附有答案.docx VIP
 - 现代控制理论基础.docx VIP
 - (高清版)DB4406∕T 45-2024 《中药废弃物无害化处理规范》.pdf VIP
 - 《住宅工程质量常见问题防治技术标准》.pdf VIP
 - 2025年事业单位招聘考试公共基础知识题库及答案(共500题).pdf VIP
 - 《汉尚华莲汉服公司SWOT分析及营销策略研究》20000字.docx VIP
 - 家庭中医保健按摩.pptx
 - DNVGL-ST-0126-2018 国外国际标准.pdf
 - QJ 10004-2008 半导体器件总剂量辐照试验方法.docx VIP
 
原创力文档
                        

文档评论(0)