| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 899 人关注过本帖
标题:二叉树中链式存储的问题
只看楼主 加入收藏
zzqqrr
Rank: 6Rank: 6
来 自:299294817
等 级:侠之大者
威 望:1
帖 子:155
专家分:408
注 册:2011-6-11
结帖率:83.33%
收藏
已结贴  问题点数:5 回复次数:3 
二叉树中链式存储的问题
/*  HELLO.C -- Hello, world */
#include <stdio.h>
#define NULL   0
#include <malloc.h>
typedef struct node{
   char  data;
   struct node *lchild,*rchild;
}bintnode,*bintree;

bintree inorder()
{
     bintree p,head;
  int i,j;
  char x,v[10];
  scanf("%d%d",&i,&x);

   p=malloc(sizeof(bintnode));
   p->data=x;
   p->lchild=NULL;
   p->rchild=NULL;
   v[i]=p;
   j=i%2;
   if(p==NULL)
   return;
   else
   {
     if(i%2==0)
      j->lchild=p;
      else
      j->rchild=p;
   }
   scanf("%d%d",&i,&x);
   return p;

}

main()
{
   bintree * tree;
   tree=inorder();
    getch();
}



我这个二叉数的链式存储,用的是中序法,但编译有问题哪位高手帮我改一下啊
搜索更多相关主题的帖子: world 二叉树 return include 
2011-11-01 23:21
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:2 
真的是神马,类型不匹配。。。。都不知道你在干什么。。。  头也少了 不知道你用什么写的。。。
你还是好好的。。把代码重新看看吧。。。。。。。。。。。

用心做一件事情就这么简单
2011-11-03 17:02
leizisdu
Rank: 2
等 级:论坛游民
帖 子:22
专家分:24
注 册:2011-10-17
收藏
得分:2 
回复 楼主 zzqqrr
您的代码当然不会通过编译,很多语法规则都被您违背了
2011-11-05 17:08
leizisdu
Rank: 2
等 级:论坛游民
帖 子:22
专家分:24
注 册:2011-10-17
收藏
得分:0 
回复 楼主 zzqqrr
楼主,您可以参考下面的代码:“
程序代码:
#include <stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct BiTreeNode
{
   char data;
   struct BiTreeNode *lchild,*rchild;
}BTNode;
BTNode *Create_BiTree()//二叉树的建立
{//用辅助数组建立二叉树
   int i,j;
   char ch;
   BTNode *t = NULL;
   BTNode *p[MAXSIZE] = {NULL};  // 存放的只不过是指针! SLL, 2011-10-21
   printf("输入顶点编号i及信息ch,输入0和#结束:i,ch  \n");
   scanf("%d,%c",&i,&ch);
   while(i==0||ch=='#') break;
   while(i!=0&&ch!='#'){                 //建立二叉树的存储结构
      if (p[i] == NULL)
      {
         p[i] = (BTNode *)malloc(sizeof(BTNode));
         p[i]->lchild = p[i]->rchild=NULL;
      }
      p[i]->data=ch;
      if(i==1) //判断输入结点是根结点、左孩子还是右孩子
      {
         t = p[i];
      }
      else
      {
         j=i/2;
         if (p[j] == NULL)
         {
            p[j] = (BTNode *)malloc(sizeof(BTNode));
            p[j]->lchild = p[j]->rchild = NULL;
         }
         if(i%2==0) 
         {
            p[j]->lchild=p[i];   // SLL, 2011-10-21
         }
         else 
         {
            p[j]->rchild=p[i];
         }
      }
      printf("输入顶点编号i及信息ch,输入0和#结束:i,ch  \n");
      scanf("%d,%c",&i,&ch);
   }
   return t;
}// Create_BiTree
void  Inorder(BTNode *bt)    //中序递归遍历
{                        
    if(bt)
    {
       Inorder(bt->lchild);
       printf("%c",bt->data);
       Inorder(bt->rchild);
    }
}//Inorder
int main()
{
    BTNode *biTree;
    biTree = Create_BiTree();
    printf("中序遍历结果:\n");
    Inorder(biTree);
    printf("\n");
    return 0;
}


注:实际上,您和网友“Heart→M鹏”的问题是一样的:https://bbs.bccn.net/viewthread.php?tid=344651&page=1#pid2024749
程序运行结果见附件
结果.rar (71.62 KB)

注2:输入数据时,节点号和节点值之间用且只用“,”分割。

[ 本帖最后由 leizisdu 于 2011-11-5 20:17 编辑 ]
2011-11-05 20:04
快速回复:二叉树中链式存储的问题
数据加载中...
 
   



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

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