二叉树的创建与访问算法的设计(三种遍历方法)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了二叉树的创建与访问算法的设计(三种遍历方法),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2681字,纯文字阅读大概需要4分钟。
内容图文
二叉树的创建与访问算法的设计(三种遍历方法)
1、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
(1)从键盘输入二叉树的元素,建立二叉树。
(2)实现二叉树的先序遍历算法。
2、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
(1)从键盘输入二叉树的元素,建立二叉树。
(2)实现二叉树的中序遍历算法。
3、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
(1)从键盘输入二叉树的元素,建立二叉树。
(2)实现二叉树的后序遍历算法。
程序
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct tree{
char date;
struct tree *lchild;
struct tree *rcjild;
}tree,*shu;
shu xjl(){
char b;
shu p;
scanf("%c",&b);
if(b=='$'){
p=NULL;
}
else{
p=(shu)malloc(sizeof(tree));
p->date=b;
p->lchild=xjl();
p->rcjild=xjl();
}
return p;
}
void xbl( shu p ){
if(p!=NULL){
printf("%c\n",p->date);
xbl(p->lchild);
xbl(p->rcjild);
}
}
shu zjl(){
char b;
shu t;
scanf("%c",&b);
if(b=='$'){
t=NULL;
}
else{
t=(shu)malloc(sizeof(tree));
t->lchild=zjl();
t->date=b;
t->rcjild=zjl();
}
return t;
}
void zbl( shu t ){
if(t!=NULL){
zbl(t->lchild);
printf("%c\n",t->date);
zbl(t->rcjild);
}
}
shu hjl(){
char b;
shu f;
scanf("%c",&b);
if(b=='$'){
f=NULL;
}
else{
f=(shu)malloc(sizeof(tree));
f->lchild=hjl();
f->date=b;
f->rcjild=hjl();
}
return f;
}
void hbl( shu f ){
if(f!=NULL){
hbl(f->lchild);
hbl(f->rcjild);
printf("%c\n",f->date);
}
}
void cd(){
int n;
shu f;
shu t;
shu p;
printf("***************************\n");
printf(" 请选择你要执行的功能:\n\n" );
printf(" 1、先序遍历建立二叉树\n\n");
printf(" 2、中序遍历建立二叉树\n\n");
printf(" 3、后序遍历建立二叉树\n\n");
printf(" 4、退出\n\n");
printf(" 5、返回主菜单\n\n");
printf("***************************\n");
scanf("%d",&n);
getchar();
switch(n){
case 1:
printf("请输入建立先序遍历二叉树数据:\n");
printf("----------------------------\n");
p=xjl();
printf("----------------------------\n");
printf("输出的先序遍历为:\n");
printf("----------------------------\n");
xbl(p);
printf("----------------------------\n");
break;
case 2:
printf("请输入建立中序遍历二叉树数据:\n");
printf("-----------------------------\n");
p=zjl();
printf("-----------------------------\n");
printf("输出的中序遍历为:\n");
printf("-----------------------------\n");
zbl(t);
printf("-----------------------------\n");
break;
case 3:
printf("请输入建立中序遍历二叉树数据:");
printf("-----------------------------\n");
p=hjl();
printf("-----------------------------\n");
printf("输出的后序遍历为:\n");
printf("-----------------------------\n");
hbl(f);
printf("-----------------------------\n");
break;
case 4:
break;
case 5:
cd();
break;
}
}
int main(){
int n;
shu p;
shu t;
shu f;
cd();
return 0;
}
内容总结
以上是互联网集市为您收集整理的二叉树的创建与访问算法的设计(三种遍历方法)全部内容,希望文章能够帮你解决二叉树的创建与访问算法的设计(三种遍历方法)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。