算法导论——二叉查找树
来源:互联网 发布:重庆seo俱乐部 编辑:程序博客网 时间:2024/06/04 22:46
代码部分实现,用insert生成二叉查找树。
暂无delete函数。
创建查找树是用insert逐个插入。
代码比较简陋,希望有所帮助。
#include<iostream>using namespace std;struct Node{ Node *left; Node *right; Node *parent; int data; Node(int x):left(NULL),right(NULL),parent(NULL),data(x){}};class searchtree{public: Node* root; searchtree() { root=NULL; }; void create() { int i; while(cin>>i) { Node* newnode= new Node(i); insert(newnode); } } void insert(Node* newnode) { if(root==NULL) root=newnode; else { Node* y=NULL; Node* x=root; while(x!=NULL) { y=x; if(newnode->data>x->data) x=x->right; else x=x->left; } newnode->parent=y; if(newnode->data<y->data) y->left=newnode; else y->right=newnode; } } void order(Node* p) //中序遍历 { if(p!=NULL) { // cout<<p->data<<" "; order(p->left); cout<<p->data<<" "; order(p->right); //cout<<p->data<<" "; } } void preorder(Node* p) //前序遍历 { if(p!=NULL) { cout<<p->data<<" "; preorder(p->left); preorder(p->right); } } void nextorder(Node* p) //后序遍历 { if(p!=NULL) { nextorder(p->left); nextorder(p->right); cout<<p->data<<" "; } } Node* reroot() { return root;} Node* Min( Node *p) { while(p!=NULL) p=p->left; return p; } Node* Max ( Node *p) { while(p!=NULL) p=p->right; return p; } Node* successor(Node * p) { if(p->right!=NULL) return Min(p->right); Node* y=p->parent; while(y!=NULL&& p==y->right) { p=y; y=y->parent; } return y; }};int main(){ searchtree tree; tree.create(); Node* p=tree.reroot(); cout<<"中序遍历:"; tree.order(p); cout<<endl; cout<<"先序遍历:"; tree.preorder(p); cout<<endl; cout<<"后序遍历:"; tree.nextorder(p);}
阅读全文
0 0
- 算法导论——二叉查找树
- 算法导论——二叉查找树
- 算法导论学习笔记——二叉查找树
- 二叉查找树——删除操作(算法导论)
- 《算法导论》— Chapter 12 二叉查找树
- 算法导论 二叉查找树
- 算法导论第十二章:二叉查找树
- 算法导论P151 二叉查找树
- 算法导论(八)二叉查找树
- 二叉查找树 算法导论笔记
- 算法导论 最优二叉查找树
- 二叉查找树 (算法导论12)
- 最优二叉查找树 算法导论216
- 算法导论15.5 最优二叉查找树
- 二叉查找树(来自算法导论)
- 算法导论--二叉查找树--C++实现
- 学习《算法导论》 二叉查找树 总结
- 《算法导论》二叉查找树的实现
- 深刻分析有效值与均方根
- Android Camera Preview ANativeWindow的处理
- 算法谜题91 水平的和垂直的多米诺骨牌
- jedis基本操作
- Ubuntu aria2c 下载
- 算法导论——二叉查找树
- osg矩阵
- mysql sql语句查询字符串对比
- USCAO-Section1.2 Transformations
- 常考算法与数据结构--面试准备
- in 和 exist 区别
- 交换排序算法:冒泡排序-Bubble Sort
- Unity3D的单例框架以及单例框架的使用
- 寄居蟹与海葵