| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖, 1 人收藏
标题:二叉树的建立问题,帮忙看看。
只看楼主 加入收藏
xyb1234
Rank: 2
等 级:论坛游民
帖 子:17
专家分:24
注 册:2009-6-1
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:2 
二叉树的建立问题,帮忙看看。
为什么程序【1】就运行不了,程序【2】运行得了
区别就在create()函数的参数,二叉树的建立,
谁给我讲讲,帮忙

程序【1】
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct B
{char data;
struct B*lchild;
struct B*rchild;
}node,*pnode;

void create(node*p)
{char ch;
scanf("%c",&ch);
getchar();
if(ch=='0')
  return;

p=(pnode)malloc(sizeof(node));
  p->data=ch;

  p->lchild=NULL;
  p->rchild=NULL;
  create(p->lchild);
  create(p->rchild);
  return;
}

void visit(char num)
{printf("%c",num);
}

void pre(node*t)
{if(t)
{
  pre(t->lchild);
  visit(t->data);
  pre(t->rchild);
  return;
  }
else
  return;
}

void main()
{node*p;
create (p);
pre(p);

}

程序【2】
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct B
{char data;
struct B*lchild;
struct B*rchild;
}node,*pnode;

void create(node**p)
{char ch;
scanf("%c",&ch);
getchar();
if(ch=='0')
  return;

*p=(pnode)malloc(sizeof(node));
  (*p)->data=ch;

  (*p)->lchild=NULL;
  (*p)->rchild=NULL;
  create(&(*p)->lchild);
  create(&(*p)->rchild);
  return;
}

void visit(char num)
{printf("%c",num);
}

void pre(node*t)
{if(t)
{
  pre(t->lchild);
  visit(t->data);
  pre(t->rchild);
  return;
  }
else
  return;
}

void main()
{node*p;
create (&p);
pre(p);

}
搜索更多相关主题的帖子: 二叉树 
2009-08-25 20:10
ghost_nmh
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2009-8-25
收藏
得分:0 
void create(node*&p)
{char ch;
scanf("%c",&ch);
getchar();
if(ch=='0')
  return;

p=(pnode)malloc(sizeof(node));
  p->data=ch;

  p->lchild=NULL;
  p->rchild=NULL;
  create(p->lchild);
  create(p->rchild);
  return;
}
应用传值更简单
2009-08-25 22:49
ghost_nmh
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2009-8-25
收藏
得分:10 
node* create(node*p)
{char ch;
scanf("%c",&ch);
getchar();
if(ch=='0')
  return;

p=(pnode)malloc(sizeof(node));
  p->data=ch;

  p->lchild=NULL;
  p->rchild=NULL;
  p->lchild=create(p->lchild);
  p->rchild=create(p->rchild);
  return p;
}
这么改应该也行
2009-08-25 22:51
快速回复:二叉树的建立问题,帮忙看看。
数据加载中...
 
   



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

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