解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node *lchild,*rchild;
}Node;
Node *Insert(Node *t,Node *s){
if(t==NULL){
return s;
}
Node *p=t;
Node *f;
while(p!=NULL){
f=p;
if(s->data<p->data){
p=p->lchild;
}
else if(s->data>p->data){
p=p->rchild;
}
else if(s->data==p->data){
return t;
}
}
if(f->data>s->data){
f->lchild=s;
}
else{
f->rchild=s;
}
return t;
}
Node *Create(int n){
Node *s,*t;
t=NULL;
for(int i=0;i<n;i++){
s=(Node*)malloc(sizeof(Node));
scanf("%d",&s->data);
s->lchild=s->rchild=NULL;
t=Insert(t,s);
}
return t;
}
void first(Node *node){
if(node){
printf("%d ",node->data);
first(node->lchild);
first(node->rchild);
}
}
void middle(Node *node){
if(node){
middle(node->lchild);
printf("%d ",node->data);
middle(node->rchild);
}
}
void later(Node *node){
if(node){
later(node->lchild);
later(node->rchild);
printf("%d ",node->data);
}
}
int main(){
int n;
while(scanf("%d",&n)==1){
Node *node;
node=Create(n);
first(node);
printf("\n");
middle(node);
printf("\n");
later(node);
printf("\n");
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复