二叉查找树的基本操作

#include <iostream>
#include <stack>using namespace std;stack<TreeNode *> s;typedef int Data;struct TreeNode{Data data;TreeNode *parent;TreeNode *left;TreeNode *right;
};//创建一颗查找二叉树
TreeNode *Create_Tree(int num){TreeNode *p=(TreeNode *)malloc(sizeof(TreeNode));TreeNode *root,*child,*parent;child=root=p;p->parent=p->left=p->right=NULL;cin>>root->data;int i=0;while (++i<num){TreeNode *p=(TreeNode *)malloc(sizeof(TreeNode));p->parent=p->left=p->right=NULL;cin>>p->data;child=root;while (child){parent=child;if (p->data>child->data){child=child->right;}else{child=child->left;}}if (p->data>parent->data){parent->right=p;p->parent=parent;}else{parent->left=p;p->parent=parent;}}return root;
}TreeNode *Tree_Search(TreeNode *t,int key){while (t&&t->data!=key){if (t->data>key){t=t->left;}else{t=t->right;}}return t;
}TreeNode *Minimum(TreeNode *t){while (t->left){t=t->left;}return t;
}TreeNode *Maximum(TreeNode *t){while (t->right){t=t->right;}return t;
}TreeNode *Tree_Successor(TreeNode *t){if (t->right){return Minimum(t->right);}else{while (t->parent&&t->parent->right==t){t=t->parent;}return t->parent;}
}TreeNode *Tree_Predecessor(TreeNode *t){if (t->left){t=t->left;while (t->right){t=t->right;}return t;}else if (t->parent){return t->parent;    }
}

  

转载于:https://www.cnblogs.com/lsf90/p/3147147.html

第十二章:二叉查找树(1)相关推荐

  1. stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验

    1)实验平台:alientek 阿波罗 STM32F767 开发板 2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第二十二章 待机唤醒实 ...

  2. 构建之法第十,十一,十二章阅读

    第十章经典用户和场景 虽说经典场景和经典用户很有必要去研究去效仿,但是随着时间发展,新的用户新的需求不断涌现,那该怎么平衡? 第十一章软件设计与实现 软件设计过程中,如何管理设计变更呢? 第十二章用户 ...

  3. 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

    http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...

  4. stm32 文件系统dma大小_「正点原子NANO STM32F103开发板资料连载」第二十二章 DMA 实验...

    1)实验平台:[正点原子] NANO STM32F103 开发板 2)摘自<正点原子STM32 F1 开发指南(NANO 板-HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 ...

  5. 系统架构师学习笔记_第十二章_连载

    第十二章  系统安全架构设计 12.1  信息系统安全架构的简单描述 信息安全的特征 是为了保证信息的 机密性.完整性.可用性.可控性.不可抵赖性. 以风险策略为基础. 12.1.1  信息安全的现状 ...

  6. 《c++ templates》学习笔记(9)——第十二章 特化与重载

    1       第十二章 特化与重载 1.1    重载函数模板 和一般的函数重载类似,函数模板也可以进行重载,比如下面的两个f,这是两个同名函数,1和2并没有关系,2不是1的局部特化.2是1的一个重 ...

  7. 开发日记-20190915 关键词 汇编语言王爽版 第十二章

    第十二章 内中断 任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部传送过来或内部产生的一种特殊信息,并且可以立即对所接收的信息进行处理.这种特 ...

  8. 【译】 WebSocket 协议第十二章——使用其他规范中的WebSocket协议

    概述 本文为 WebSocket 协议的第十二章,本文翻译的主要内容为如何使用其他规范中的 WebSocket 协议. 使用其他规范中的WebSocket协议(协议正文) WebSocket协议旨在由 ...

  9. 第十二章 支持向量机-机器学习老师板书-斯坦福吴恩达教授

    第十二章 支持向量机 12.1 优化对象 12.2 大间隔的直观理解 12.3 大间隔分类器的数学原理 12.4 核函数一 12.5 核函数二 12.6 使用SVM 12.1 优化对象 12.2 大间 ...

  10. 鸟哥的Linux私房菜(服务器)- 第十二章、网络参数控管者: DHCP 服务器

    第十二章.网络参数控管者: DHCP 服务器 最近更新日期:2011/07/27 想象两种情况:(1)如果你在工作单位使用的是笔记本电脑,而且常常要带着你的笔记本电脑到处跑, 那么由第四章.连上 In ...

最新文章

  1. api工程IOS学习:在IOS开发中使用GoogleMaps SDK
  2. HttpModule与HttpHandler详解
  3. CDQ分治 + 树状数组 ---- C. Goodbye Souvenir(三维偏序+思维)
  4. dw html5怎么美化,DW CS5/CS6代码格式化、美化插件 Dreamweaver代码格式化美化插件
  5. 最新综述:用于文本分类的数据增强方法
  6. Ajax同步调用 异步排序
  7. 智能指针 shared_ptr 解析
  8. Docker部署Elasticsearch集群
  9. HDU - 3247 Resource Archiver (AC自动机,状压dp)
  10. python 中【example[I] for example in dataset】的理解
  11. mysql实现知识图谱_基于电影知识图谱的智能问答系统学习记录
  12. java非阻塞io流_阻塞式和非阻塞io流初认识
  13. 转速器盘课程设计 大批量
  14. easyUI的iconCls
  15. 计算机文件夹中看不到桌面图标,电脑文件夹内不显示图标
  16. 服务器网站中断,如何解决无法打开网页及服务器已断开连接的问题?
  17. 【理解】经典角点检测算法--Harris角点
  18. 【Python】根据汽车品牌列表及链接地址分别获取对应子品牌及车系数据列表
  19. python从数组中随机选择一些元素_numpy.random随机选择数组元素如何更高效
  20. html5类选择器用什么表示,HTML_揭秘常用的五类CSS选择器用法,有许多新手朋友不知道在什么 - phpStudy...

热门文章

  1. VTK:PolyData之MeshQuality
  2. VTK:图片之ImageMapToColors
  3. VTK:网格之HyperTreeGridSource
  4. OpenCV感兴趣区域Region of interest的实例(附完整代码)
  5. ListModel QML类型
  6. Qt Designer的UI文件格式
  7. C语言使用1到9求出所有k个数字的所有组合的算法(附完整源码)
  8. OpenGL 地形LOD的镶嵌细分的用法
  9. C语言实现并查集(Disjoint set或者Union-find set)(附完整源码)
  10. C语言存储类、作用域、声明周期、链接属性