当前位置:网站首页>九度 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
边栏推荐
- With st7008, the Bluetooth test is completely grasped
- CIS芯片测试到底怎么测?
- MRS离线数据分析:通过Flink作业处理OBS数据
- Precautions for cjson memory leakage
- Version selection of boot and cloud
- torch.nn.functional.pad(input, pad, mode=‘constant‘, value=None)记录
- MIT science and technology review article: AgI hype around Gato and other models may make people ignore the really important issues
- Force buckle 88 Merge two ordered arrays
- [MySQL - Basic] transactions
- Mrs offline data analysis: process OBS data through Flink job
猜你喜欢
[philosophy and practice] the way of program design
Vulnhub's funfox2
九章云极DataCanvas公司摘获「第五届数字金融创新大赛」最高荣誉!
Mrs offline data analysis: process OBS data through Flink job
Leetcode force buckle (Sword finger offer 36-39) 36 Binary search tree and bidirectional linked list 37 Serialize binary tree 38 Arrangement of strings 39 Numbers that appear more than half of the tim
【哲思与实战】程序设计之道
openEuler 资源利用率提升之道 01:概论
剑指 Offer II 013. 二维子矩阵的和
Welcome to the markdown editor
Ways to improve the utilization of openeuler resources 01: Introduction
随机推荐
Force buckle 459 Duplicate substring
CUDA versions are inconsistent, and errors are reported when compiling apex
Oracle 存储过程之遍历
pom.xml 配置文件标签作用简述
Force buckle 674 Longest continuous increasing sequence
mock. JS returns an array from the optional data in the object array
【mysql篇-基础篇】事务
开源重器!九章云极DataCanvas公司YLearn因果学习开源项目即将发布!
JVM 类加载机制
【解决】package ‘xxxx‘ is not in GOROOT
Graduation season | regretful and lucky graduation season
mock.js从对象数组中任选数据返回一个数组
openEuler 资源利用率提升之道 01:概论
Version selection of boot and cloud
Leetcode force buckle (Sword finger offer 36-39) 36 Binary search tree and bidirectional linked list 37 Serialize binary tree 38 Arrangement of strings 39 Numbers that appear more than half of the tim
841. 字符串哈希
多个线程之间如何协同
pom. Brief introduction of XML configuration file label function
Classification automatique des cellules de modules photovoltaïques par défaut dans les images de lecture électronique - notes de lecture de thèse
torch. nn. functional. Pad (input, pad, mode= 'constant', value=none) record