| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 680 人关注过本帖
标题:谁能帮我讲解一下这个非递归法建立二叉树的思路
只看楼主 加入收藏
赤壁男儿
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-26
结帖率:66.67%
收藏
 问题点数:0 回复次数:1 
谁能帮我讲解一下这个非递归法建立二叉树的思路
//建立二叉树,非递归算法,输入时按层次输入。以“$ "结束,以“! "表示孩子为空。
#include   <stdio.h>
#include    <stdlib.h>
typedef     struct   bnode{
      char   data;
      struct   bnode   *lchild;
      struct   bnode   *rchild;
}BinNode;

BinNode   *root,   *s,   *q[100];


//非递归法建立二叉树
void Inittree()
{
      int   parent,   children;
      char   ch;
      parent=1;
      children=0;
      root=NULL;
      printf( "\nPlease   input   the   data: ");
      scanf( "%d ",&ch);     getchar();
   
    while(ch!= '$ ')
    {
          s=NULL;
          if   (ch!= '! ')
          {
                s=malloc(sizeof(BinNode));
                s-> rchild=NULL;
                s-> lchild=NULL;
                s-> data=ch;
          }
          children++;
          q[children]=s;
          if   (children==1)   
              root=s;
          else   
          {
              if(s!=NULL&&q[parent]!=NULL)  
              {
                      if   (children%2==0)
                              q[parent]-> lchild=s;
                      else
                              q[parent]-> rchild=s;
              }
              if(children%2==1)
                    parent++;
        }
        printf( "Please   input   the   data: ");
        scanf( "%c ",&ch);     getchar();
    }      
}

void preorder(BinNode   *root)
{
      if(root!=NULL)
      {
            printf( "%4c ",root-> data);
            preorder(root-> lchild);
            preorder(root-> rchild);
      }
}/*前序遍历*/
main()
{
        Inittree();
        preorder(root);
}
搜索更多相关主题的帖子: 二叉树 递归 思路 讲解 
2010-10-08 21:15
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
能不能贴个图上来
2010-10-14 19:33
快速回复:谁能帮我讲解一下这个非递归法建立二叉树的思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011777 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved