当前位置:网站首页>九度 1201 -二叉排序数遍历- 二叉排序树「建议收藏」
九度 1201 -二叉排序数遍历- 二叉排序树「建议收藏」
2022-07-07 18:11:00 【全栈程序员站长】
大家好,又见面了,我是全栈君。
这个是道正统的树构建和遍历题。一開始还想用数组构建取代一下水过去,可是发现不行,仅仅好老老实实的用指针了。二叉排序树和遍历方法假设不清楚定义的话。最好去看看数据结构书复习下。
#include<stdio.h>
struct node{
node *l;
node *r;
int val;
node(int a):val(a),l(NULL),r(NULL){};
};
node *root;
int n;
void qian(node *p){
printf("%d ",p->val);
if(p->l!=NULL)qian(p->l);
if(p->r!=NULL)qian(p->r);
}
void zhong(node *p){
if(p->l!=NULL)zhong(p->l);
printf("%d ",p->val);
if(p->r!=NULL)zhong(p->r);
}
void hou(node *p){
if(p->l!=NULL)hou(p->l);
if(p->r!=NULL)hou(p->r);
printf("%d ",p->val);
}
int main(){
int val;
node *p;
while(~scanf("%d",&n)){
root=NULL;
for(int i=0;i<n;i++){
scanf("%d",&val);
if(i==0){
root=new node(val);
continue;
}
p=root;
while(1){
if(val==p->val)break;
else if(val<p->val){
if(p->l==NULL){
p->l=new node(val);
break;
}
else{
p=p->l;continue;
}
}
else if(val>p->val){
if(p->r==NULL){
p->r=new node(val);
break;
}
else{
p=p->r;continue;
}
}
}
}
qian(root);
printf("\n");
zhong(root);
printf("\n");
hou(root);
printf("\n");
}
return 0;
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116527.html原文链接:https://javaforall.cn
边栏推荐
猜你喜欢
随机推荐
Chapter 20 using work queue manager (3)
Semantic SLAM源码解析
torch. nn. functional. Pad (input, pad, mode= 'constant', value=none) record
Traversée des procédures stockées Oracle
gorilla官方:golang开websocket client的示例代码
力扣 2319. 判断矩阵是否是一个 X 矩阵
How to cooperate among multiple threads
Machine learning notes - explore object detection datasets using streamlit
Some arrangements about oneself
How to test CIS chip?
Force buckle 1961 Check whether the string is an array prefix
Mongodb由浅入深学习
【STL】vector
vulnhub之Funfox2
Opencv learning notes high dynamic range (HDR) imaging
Sword finger offer II 013 Sum of two-dimensional submatrix
使用高斯Redis实现二级索引
rk3128投影仪lcd显示四周显示不完整解决
Kubernetes -- detailed usage of kubectl command line tool
Force buckle 912 Sort array