《数据结构(C语言描述)(第2版)》教学课件7-05二叉排序树的插入与生成

上传人:考试不挂****2941... 文档编号:243050487 上传时间:2024-09-14 格式:PPTX 页数:7 大小:3.10MB
返回 下载 相关 举报
《数据结构(C语言描述)(第2版)》教学课件7-05二叉排序树的插入与生成_第1页
第1页 / 共7页
《数据结构(C语言描述)(第2版)》教学课件7-05二叉排序树的插入与生成_第2页
第2页 / 共7页
《数据结构(C语言描述)(第2版)》教学课件7-05二叉排序树的插入与生成_第3页
第3页 / 共7页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2016-12-26,#,2016,数据结构,Data structure,讲授:,贺宁,二叉排序树的插入与生成,常州信息职业技术学院,02,03,二叉排序树的插入,(,1,),插入方法,在二叉排序树中插入新结点,设其关键字域的值为,key,,要保证插入后仍满足,BST,性质。插入过程是:,若二叉排序树,T,为空,则为待插入结点申请存储空间,并令其为根;,若二叉排序树,T,不空,则将待插入结点关键字,key,与根的关键字比较:,(i),若,key=T-key,,则树中已有此关键字,key,,无须插入;,(ii),若,keykey,,则将,key,插入根的左子树中;,(iii),若,keyT-key,,则将,key,插入根的右子树中。,子树中的插入过程与上述的树中插入过程相同。如此进行下去,直到将,key,作为一个新的叶结点关键字插入到二叉排序树中,或者直到发现树中已有此关键字为止。,04,二叉排序树的插入,(,2,),递归算法,int,InsertBSTR(BSTree *Tptr,KeyType key),/,二叉排序树插入新结点递归算法,插入成功返回,1,,失败返回,0,if,(!(*Tptr),(*Tptr)=(BSTNode *)malloc(,sizeof,(BSTNode);,if,(*Tptr =NULL), puts (,内存申请不成功,!);,return,0;,(*Tptr)-key=key;,(*Tptr)-lchild=NULL;,(*Tptr)-rchild=NULL;,else,if,(*Tptr)-key=key),return,0;,if,(keykey),InsertBSTR(,else,InsertBSTR(,return,1;,05,二叉排序树的生成,二叉排序树的生成,是从空的二叉排序树开始,每输入一个结点数据,就调用一次插入算法将它插入到当前已生成的二叉排序树中。,BSTree CreateBST(,void,),/,输入一个结点序列,建立一棵二叉排序树,将根结点指针返回,BSTree T=NULL;,/,初始时,T,为空树,KeyType key;,scanf(%d,/,读入一个关键字,while,(key),/,假设,key=0,是输入结束标志,InsertBSTR(,/,将,key,插入二叉排序树,T,scanf(%d,/,读入下一关键字,return,T;,/,返回建立的二叉排序树的根指针,注意,二叉排序树的形态与输入序列的顺序有关,第一个输入的结点一定是根结点。,二叉排序树的中序序列是一个有序序列。所以对于一个任意的关键字序列构造一棵二叉排序树,其实质是对此关键字序列进行排序,这种排序的平均执行时间亦为,O(nlgn),,“排序树”的名称也由此而来。,06,二叉排序树的生成,按输入序列(,25,32,9,18,27,6,29,)的顺序构造二叉排序树,T,,具体过程如,下图,所示,。,图示,二叉排序树生成过程,6,T,初始为空,T,25,插入,25,T,25,32,插入,32,9,32,T,25,插入,9,18,9,32,T,25,插入,18,27,18,9,32,T,25,插入,27,27,18,9,32,T,25,插入,6,THANKS,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!