当前位置:   article > 正文

简单树的创建和遍历_创建一个树对象,并遍历这个对象

创建一个树对象,并遍历这个对象

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

typedef struct node //树结构体
{
 char data;
 struct node *lchild,*rchild;
}treenode,*stree;

stree creat_tree(void)  //创建树
{
 char ch;
 stree p;
// printf("input ");
 scanf("%c",&ch);
 if(ch=='#')
 {
  return NULL;
 }

 else{
  p = (stree)malloc(sizeof(treenode));
  if(p == NULL)
  {
   printf("malloc faile!!!/n");
   exit(1);
  }
  p->data = ch;
  p->lchild = creat_tree();
  p->rchild = creat_tree();
 
 }
 return p;
}

void preoread(stree p) //前序遍历函数
{
 if(p == NULL)
 {
//  printf("error/n");
  return;
 }
 printf("%c",p->data);
 
 preoread(p->lchild);
 preoread(p->rchild);
 
// return 0;
}

void inoread(stree p) //中序遍历函数
{
 if(p == NULL)
 {
  return;
 }
 inoread(p->lchild);
 printf("%c",p->data);
 inoread(p->rchild);
}

void postoread(stree p)  //后序遍历函数
{
 if(p == NULL)
 {
  return;
 }
 postoread(p->lchild);
 postoread(p->rchild);
 printf("%c",p->data);
}

int main(void)
{
 stree t;
 printf("input: /n");
 t = creat_tree();

 printf("前序:");
 preoread(t);
 
 printf("/n中序:");
 inoread(t);

 printf("/n后序:");
 postoread(t);

 printf("/n");

 return 0;
}
/*************************************
*************************************
测试数据:
 
 AB#D##CE###
*************************************
*************************************
*************************************/

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/596061
推荐阅读
相关标签
  

闽ICP备14008679号