《数据结构实验报告(二叉查找树)》由会员分享,可在线阅读,更多相关《数据结构实验报告(二叉查找树)(5页珍藏版)》请在金锄头文库上搜索。
1、实验六 二叉查找树一问题描述:利用二叉查找树(BST)实现一个动态查找表。二基本要求(1)使用二叉树(BST)来实现。(2)二叉树使用链式结构(二叉链表)实现。(3)实现BST的构建,查找两个功能。三实现提示输入:8/BST的节点个数34, 76, 45, 18, 26, 54, 92, 65 /8个数据45/查找 45 输出:查找成功 3 /返回成功和查找时比较的次数 34/查找 34输出:查找成功 1 /返回成功和查找时比较的次数100/查找 100输出:查找不成功 3 /返回成功和查找时比较的次数四源程序:#includeusing namespace std;class Nodepub
2、lic:Node* pLeftChild;Node* pRightChild;int data;Node() pLeftChild=NULL; pRightChild=NULL; data=0;bool searchTree(Node* subroot,int data)if(subroot!=NULL) if(datadata) return searchTree(subroot-pLeftChild,data); else if(datasubroot-data) return searchTree(subroot-pRightChild,data); else if(data=subro
3、ot-data) coutFound!endl; else coutNot Found!endl; return false; bool creatTree(Node* subroot,int data)if(*subroot!=NULL) if(datadata) creatTree(&(*subroot)-pLeftChild),data); else if(data(*subroot)-data) creatTree(&(*subroot)-pRightChild),data);else *subroot=new Node; (*subroot)-data=data;return tru
4、e;void goTree(Node* subroot)if(subroot!=NULL) goTree(subroot-pLeftChild); coutdatapRightChild);int main()Node* p=new Node;coutPlease inputM;int i=0;cinN;p-data=N;while(+iN; creatTree(&p,N);goTree(p);return 0;五测试结果: 六实验心得:1.通过本次试验,我发现自己分析问题不是很全面,忽略掉一些细节。以后分析问题时要仔细考虑,认真分析,避免在细节上犯错误。2.通过这次实验,我发现自己编程能力相当欠缺,尤其是用链表实现。自己以后要勤加练习。