回 帖 发 新 帖 刷新版面

主题:关于二叉树

我现在还不知道二叉树的遍历是什么意思?
 书上讲得很不清楚!!那位能否讲得易懂一点

回复列表 (共3个回复)

沙发

就是对二叉树的所有结点全部访问一遍,按访问的顺序会生成不同的序列。

板凳

就是把二叉树的各个节点都走一遍,有前序,后序,中序和后序之分.

3 楼

#include<stdio.h>
#include<malloc.h>
#define NULL 0;
typedef char elemtype;
typedef struct bitnode
{
char data;
  struct bitnode *lchild,*rchild;
}bitnode,*bitree;

void creatree(bitree *s)
  {
   char xt;
   bitree t;
   scanf("%c",&xt);
   if(xt=='#') *s=NULL
      else
 {
 t=(bitnode*)malloc(sizeof(bitnode));
 if (!t) printf("\n超过空间\n");
 t->data=xt;
         *s=t;
 creatree(&((*s)->lchild));
 creatree(&((*s)->rchild));
 }
       return;
  }
void xian(bitree s)
  {
     if(s)
       {
 printf("%c->",s->data);
 xian(s->lchild);
 xian(s->rchild);
       }
    return;
  }

void zhong(bitree s)
  {
     if(s)
       {
 zhong(s->lchild);
         printf("%c->",s->data);
 zhong(s->rchild);
}
     return;
  }
void hou(bitree s)
  {
     if(s)
       {
 hou(s->lchild);
 hou(s->rchild);
         printf("%c->",s->data);
        }
     return;
  }

void main()
  {
   bitree s;
   
   printf("\n请按先序方式输入数据!\n");
   creatree(&s);
   printf("\n按先序方式输出:\n");
   xian(s);
   printf("\b\n");
   printf("\n按中序方式输出:\n");
   zhong(s);
   printf("\b\n");
   printf("\n按后序方式输出:\n");
   hou(s);
   printf("\b\n");
  
   getchar();
   return;
   }

我来回复

您尚未登录,请登录后再回复。点此登录或注册