您现在的位置是:主页 > news > 网站建设面包屑导航条/中国制造网

网站建设面包屑导航条/中国制造网

admin2025/6/13 20:03:11news

简介网站建设面包屑导航条,中国制造网,网站制作用什么语言,自己有一个域名怎么做网站二叉搜索树具有下列性质: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 在二叉搜索树的基础上…

网站建设面包屑导航条,中国制造网,网站制作用什么语言,自己有一个域名怎么做网站二叉搜索树具有下列性质: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 在二叉搜索树的基础上…

二叉搜索树具有下列性质: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
在二叉搜索树的基础上,如果进行一次中序遍历,则会正好会把节点的权值从小到大搜一遍。

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;struct Node{//节点 int data;Node *left;Node *right;
};
struct Tree{//树 Node *root;
};//先序遍历(dfs遍历)
void preorder(Node *node)
{if (node!=NULL){cout<<node->data<<endl;preorder(node->left);preorder(node->right);}
}//中序遍历-->正好是从小到大排序 
void inorder(Node *node)
{if (node!=NULL){inorder(node->left);cout<<node->data<<endl;inorder(node->right);}
} //后序遍历
void postorder(Node *node)
{if (node!=NULL){postorder(node->left);postorder(node->right);cout<<node->data<<endl;}
}//插入节点
void insert_node(Tree *tree, int value)
{Node *node=(Node *)malloc(sizeof(Node));node->data=value;node->left=NULL;node->right=NULL; if (tree->root==NULL){tree->root=node;}else{Node *tmp=tree->root;while (tmp!=NULL){if (value<tmp->data){if (tmp->left==NULL){tmp->left=node;return;}else{tmp=tmp->left;}}else{if (tmp->right==NULL){tmp->right=node;return;}else{tmp=tmp->right;}}}}
} //求树的高度
int get_height(Node *node)
{if (node==NULL){return 0;}else{int left_h=get_height(node->left);int right_h=get_height(node->right);int max_height=max(left_h, right_h);return max_height+1;}
}//最大值
int get_max(Node *node)
{if (node==NULL)return -1;else{int max_left=get_max(node->left);int max_right=get_max(node->right);int max_this=node->data;int maxx=max_left;if (max_right>maxx)	maxx=max_right;if (max_this>maxx)	maxx=max_this;return maxx;}
} 
int main()
{int a[10]={6,3,8,2,5,1,7};Tree tree;tree.root=NULL;for (int i=0; i<=6; i++){insert_node(&tree, a[i]);}preorder(tree.root);cout<<endl<<endl;int height=get_height(tree.root);cout<<height<<endl;int maxx=get_max(tree.root);cout<<maxx<<endl; return 0;
}