二叉树的创建与递归遍历(一)

2013-11-20 14:23:48 · 作者: · 浏览: 199

  二叉树的创建与递归遍历,代码如下:

  #include<stdio.h>

  #include<stdlib.h>

  typedef struct Node

  {

  char data;

  struct Node *lch;

  struct Node *rch;

  }BiNode, *BiTree;

  void Creat1(BiTree *T);

  //二叉树的创建,第一种方法   BiTree Creat2()

  //二叉树的创建,第二种方法   void Preorder(BiTree T);

  //先序遍历   void Inorder(BiTree T);

  //中序遍历   void Postorder(BiTree T);

  //后续遍历

  int main(void)

  {

  BiTree T;

  Creat1(&T);

  //二叉树的创建,第一种方法

  //  T = Creat2();

  //二叉树的创建,第二种方法

  Preorder(T);

  //先序遍历

  printf("\n");

  Inorder(T);

  //中序遍历

  printf("\n");

  Postorder(T);

  //后续遍历

  return 0;

  }

  void Creat1(BiTree *T)

  //二叉树的创建,第一种方法

  {

  char c;

  printf("请输入数据:");

  c = getchar();

  flushall();

  if(c != '$')

  {

  (*T) = (BiNode *)malloc(sizeof(BiNode));

  (*T)->data = c;

  Creat(&((*T)->lch));

  Creat(&((*T)->rch));

  }

  else

  {

  (*T) = NULL;

  }

  }

  BiTree Creat2()