数据结构——19 判断是否是二叉排序树
来源:互联网 发布:下载淘宝网app 编辑:程序博客网 时间:2024/05/20 18:19
二叉树——判断是否是二叉排序树
#include<iostream>#include<queue> //层级遍历时,用到了queue模板类#include<stack> //前中后遍历时,用到了stack模板类using namespace std;class node //树节点定义{public:int data; //元素值node *parent; //父节点node *left; //左子节点node *right; //右子节点public://node():data(-1),parent(NULL),left(NULL),right(NULL){};node(int num):data(num),parent(NULL),left(NULL),right(NULL){}; //构造函数,初始化类成员变量};class tree //树定义{public:tree(int num[],int len); //构造函数void insertNode(int data); //安左低右高插入树的节点 bool isSortedTree();private:node *root; //树的根节点};tree::tree(int num[],int len) //构造函数,插入树节点{root=new node(num[0]);for(int i=1;i<len;i++)insertNode(num[i]);}void tree::insertNode(int data){node *p,*par;node *newnode=new node(data);p=par=root;while(p){par=p;if(data > p->data)p=p->right;else if(data < p->data)p=p->left;else if(data == p->data){delete newnode;return;}}newnode->parent=par;if(par->data > newnode->data)par->left=newnode;elsepar->right=newnode;}bool tree::isSortedTree(){int lastvalue=0;stack<node *> s;node *p=root; //从根节点开始while(p|| !s.empty()) //树不为空或栈不为空{while(p) //遍历左子树,压入栈,入栈前,输出节点{s.push(p);p=p->left;}if(!s.empty()){p=s.top();s.pop();if( lastvalue==0 || lastvalue < p->data )lastvalue=p->data;else if(lastvalue >= p->data)return false;}p=p->right;}}int main(){int num[8]={5,3,7,2,4,6,8,1};tree t(num,8);cout<<t.isSortedTree();cout<<endl;return 0;}
0 0
- 数据结构——19 判断是否是二叉排序树
- 数据结构实践——是否二叉排序树?
- 数据结构实践——是否二叉排序树?
- 大话数据结构—二叉排序树
- 【数据结构 是否为二叉排序树】
- 判断一棵二叉树是否是二叉排序树
- 第十四周--项目3判断是是否为二叉排序树
- 第十四周项目3 判断是否是二叉排序树
- 判断一棵二叉树是否是二叉排序树
- 判断一棵树是否是二叉排序树算法的巧妙之处
- 判断二叉排序树是否相同
- 【判断两棵二叉排序树是否相同】数据结构实验之查找一:二叉排序树
- 项目3 — 是否二叉排序树?
- 数据结构例程——二叉排序树
- 数据结构复习——二叉排序树
- 判断一棵树是否为二叉排序树
- 判断是否是数字——IsNumberStr
- 数据结构——算法之(005)(判断字符串是否是对称的即(回文字符串))
- iOS 到处 ipa包的时候 会有四个选项分别代表什么
- cocos2dx CCFileUtils::sharedFileUtils() 静态调用
- 线程池
- Phalcon使用PHPExecl导出导入Execl文件
- 深度学习(多变量线性回归)
- 数据结构——19 判断是否是二叉排序树
- Android第三方支付
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- 用宏 求 x y z,找出最大值最小值
- 初始化
- OC-封装/拆包
- Git 常用命令整理
- rgb原始数据转为uiimage
- Could not build module 'Foundation'