按输入的关键字序列建立一棵二叉排序树-并删除该二叉排序树上的一个叶子结点3页

上传人:文库****9 文档编号:170684547 上传时间:2021-03-03 格式:DOC 页数:3 大小:16KB
返回 下载 相关 举报
按输入的关键字序列建立一棵二叉排序树-并删除该二叉排序树上的一个叶子结点3页_第1页
第1页 / 共3页
按输入的关键字序列建立一棵二叉排序树-并删除该二叉排序树上的一个叶子结点3页_第2页
第2页 / 共3页
按输入的关键字序列建立一棵二叉排序树-并删除该二叉排序树上的一个叶子结点3页_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《按输入的关键字序列建立一棵二叉排序树-并删除该二叉排序树上的一个叶子结点3页》由会员分享,可在线阅读,更多相关《按输入的关键字序列建立一棵二叉排序树-并删除该二叉排序树上的一个叶子结点3页(3页珍藏版)》请在金锄头文库上搜索。

1、题:二叉树采用二叉链表结构表示。设计并实现如下算法:按输入的关键字序列建立一棵二叉排序树,并删除该二叉排序树上的一个叶子结点。代码/* Note:Your choice is C IDE */*二叉树采用二叉链表结构表示。设计并实现如下算法:按输入的关键字序列建立一棵二叉排序树,并删除该二叉排序树上的一个叶子结点。*/#include stdio.h#include stdlib.htypedef int TELemType;typedef struct BiTNodeTELemType data;struct BiTNode *lchild,*rchild;BiTNode,*BiTree;i

2、nt SearchBST(BiTree T,int key,BiTree f,BiTree *p)if(!T)*p=f;return 0;if(key=T-data)*p=T;return 1;if(keydata)return SearchBST(T-lchild,key,T,p);if(keyT-data)return SearchBST(T-rchild,key,T,p);return 0;void InsertBST(BiTree *T,int key)BiTree p,s;if(!SearchBST(*T,key,NULL,&p)s=(BiTree)malloc(sizeof(BiT

3、Node);s-data=key;s-lchild=s-rchild=NULL;if(!p)*T=s;else if(keydata)p-lchild=s; else p-rchild=s;void NRPreOrder(BiTree bt)/*非递归先序遍历二叉树*/ BiTree stack100,p; int top; if (bt=NULL) return; top=0; p=bt; while(!(p=NULL&top=0) while(p!=NULL) printf(%3d,p-data); /*访问结点的数据域*/ if (toplchild; /*指针指向p的左孩子*/ if

4、(toprchild ; /*指针指向p的右孩子结点*/ int DeleteLeaf(BiTree *T)if(*T)-lchild=NULL&(*T)-rchild=NULL)*T=NULL;return 0;if(*T!=NULL)return DeleteLeaf(&(*T)-lchild);return DeleteLeaf(&(*T)-rchild);return 0;void main() BiTree T; int i; int key7=45,24,53,45,12,24,90; T=NULL; for(i=0;i7;i+) InsertBST(&T,keyi); NRPreOrder(T); DeleteLeaf(&T); printf(n); NRPreOrder(T);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号