首页 > 代码库 > 用二叉链表实现二叉查找树(二)
用二叉链表实现二叉查找树(二)
/* 二叉查找树的链表实现: 以及三种遍历方式,删除节点; 查找节点; author:天下无双 Date:2014-5-28 Version:3.0 */ #include <iostream> #include <string> typedef int T;//树内节点的数据类型 using namespace std; class BiTree { private: struct BiNode{ T data; BiNode *lchild,*rchild; BiNode(T d){ data=http://www.mamicode.com/d;>感觉对于递归中的return还是有点不太清晰。什么时候该用,什么时候不该用也不太清晰。测试代码<pre name="code" class="cpp">#include "bit4.cpp" int main() { BiTree b; //b.addBiNode(&b.root,50);//设立根节点值//二级指针写法 b.addBiNode(b.getRoot(),50);//指针的引用写法 int i; int arr[9]={30,40,35,27,100,90,110,95,-999}; for(int j=0;j<9;j++) { i=arr[j]; if(i==-999) break; b.addBiNode(b.getRoot(),i); } b.Traverse(b.getPtrToRoot(),"PreOrderTraverse"); b.Traverse(b.getPtrToRoot(),"InOrderTraverse"); b.Traverse(b.getPtrToRoot(),"PostOrderTraverse"); while(true) { int k; cout<<"\n输入要查找的值:"<<endl; cin>>k; if(b.Search(b.getRoot(),k)) cout<<"OK"<<endl; else cout<<"NO"<<endl; } cin.get(); system("pause"); return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。