欢迎来到天天文库
浏览记录
ID:62046244
大小:140.00 KB
页数:5页
时间:2021-04-16
《实验六二叉树的操作.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途武夷学院数学与计算机科学系上机实验报告实验六:二叉树的操作一、实验目的掌握二叉树的常见操作及实现方法二、实验环境硬件环境:微型计算机。软件环境:Windows 2000或以上版本,turboc2.0三、实验内容与要求建立二叉树,对其进行遍历,求出该二叉树的高度,并查询二叉树中是否存在值为x的结点四、实验步骤及结果#include "stdio.h"#include"malloc.h"typedefstructnode{chardata; structnode*lchild,*rchild;}bintnode
2、;typedefbintnode*bintree;voidcreatebintree(bintree*t){charch;printf("pleaseinputchar(input ''end):");fflush(stdin);if((ch=getchar())=='') *t=NULL;else{ *t=(bintnode *)malloc(sizeof(bintnode)); (*t)->data=ch;createbintree(&((*t)->lchild));/*建立左子树 */ createbintree(&(
3、(*t)->rchild));/*建立右子树*/个人收集整理勿做商业用途}}voidf_inorder(bintreet){printf("firstorderexploerbittree:");if(t){ printf("%c",t->data); f_inorder(t->lchild);f_inorder(t->rchild); }printf("n");}voidm_inorder(bintreet){ printf("middle orderexplorebitree:");if(t){ m_inorde
4、r(t->lchild); printf("%c",t->data); m_inorder(t->rchild);}printf("n");}void search(bintreet,char x){inti=0;if(t) {if(t->data==x)ﻩ{printf("\nthecharis:%c",t->data); i=1;} search(t->lchild,x);/*在右子树上查找*/search(t->rchild,x);/*在左子树上查找*/ }else if(i==0) printf("no fin
5、d!");}个人收集整理勿做商业用途int depth(bintreet){int dep1,dep2;if(t==NULL) return(0);else{ dep1=depth(t->lchild); dep2=depth(t->rchild); if(dep1>dep2) return(dep1+1);elsereturn(dep2+1);}}voidmain(){charx;bintree*A;A=NULL;createbintree(A); f_inorder(*A);m_inorder(*A);printf("nple
6、ase input search ch:");fflush(stdin);x=getchar();search(*A,x);printf("thedepth of bitreeis:%d",depth(*A));getchar();}实验结果:1、建立一个二叉树个人收集整理勿做商业用途2、输入所查询二叉树中的结点个人收集整理勿做商业用途3、查询的结果如下:五、总结从该实验中,我知道了怎样建立二叉树,以及遍历二叉树的应用。比如按先序序列建立二叉树,要先生成根结点,再构造左子树,然后构造右子树。树中结点的最大层次称为深度,如该实验所
7、示的树的深度为5。我在编写程序的时候只能做到按先序序列建立一个二叉树,所以有待于加强。其原因在于我对二叉树的理解与用法不熟悉,其次,我对编程依然生疏。我会好好努力,再接再厉!
此文档下载收益归作者所有