| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 516 人关注过本帖
标题:请指教....如何改进..
只看楼主 加入收藏
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
 问题点数:0 回复次数:5 
请指教....如何改进..

#include <stdio.h>
#include <stdlib.h>
typedef char DataType; /*设数据域类型为字符型*/
typedef struct node
{
DataType data;
struct node *lchild,*rchild,*mchild; /*左中右链域为指向结点结构的指针类型*/
}TNode; /*结点类型*/
typedef TNode *Tree; /*指向树结点的指针类型*/
/*以加入结点的左中右顺序序列输入,构造树*/
void CreateTree(Tree *T)
{
char ch;
scanf("\n%c",&ch);
if (ch=='0') *T=NULL; /*读入0时,将相应结点置空*/
else {
*T=(TNode*)malloc(sizeof(TNode)); /*生成结点空间*/
(*T)->data=ch;
CreateTree(&(*T)->lchild); /*构造二叉树的左子树*/
CreateTree(&(*T)->mchild); /*构造二叉树的中子树*/
CreateTree(&(*T)->rchild); /*构造二叉树的右子树*/
}
}
/*遍历树T中叶子结点*/
void Leaforder(Tree T)
{
if (T)
{
if (T->lchild==NULL && T->rchild==NULL&& T->mchild==NULL)
{
printf("%c",T->data); /*若为叶子,则输出*/
}
Leaforder(T->lchild); /*统计T的左子树*/
Leaforder(T->mchild); /*统计T的中子树*/
Leaforder(T->rchild); /*统计T的右子树*/
}
}

main()
{
Tree T;
printf("请按带空指针的树左中右顺序输入建立树存储的结点序列:\n");
printf("书本P40图3.1推导树的建立序列为S a 0 0 0 A S 0 a 0 0 0 0 b 0 0 0 A b 0 0 0 0 a 0 0 0 S 0 0 a 0 0 0\n");
CreateTree(&T);
Leaforder(T);
getch();
}

读取一个二叉树
然后输出 叶子节点,
数据结构我没学,c也只是看到了指针,不晓得怎么入手
应该怎么改,了解的朋友帮我改下,谢谢了

搜索更多相关主题的帖子: 指教 改进 
2006-03-26 18:20
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
得分:0 

....


几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-03-28 11:39
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
首先.既然是二叉树..!!怎会有中子树呢.(从来就没有这个概念吧)

二叉树..只有左孩子.和右孩子.其树的最大度为2

当度为0时.既.没有左孩子也没有右孩子的结点.称为叶子结点

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-03-28 11:55
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
得分:0 
不懂,我朋友就是那么和我说的...

几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-03-28 11:57
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
# include <stdio.h>
# include <stdlib.h>
struct btnode
{
int d;
struct btnode *lchild;
struct btnode *rchild;
}

void leafnode(struct btnode *t)
{
if(t!=0)
{
if (t.lchild==0 && t.rchild==0)
printf("%d",t.d);

leafnode(t.lchild);
leadnode(t.rchild);
}
return;
}

main()
{

这不写了..假设已经建立二叉树.

调用时实参为 二叉树的头指针.


}

去看看数据结构就知道了..你不看怎么能了解

数据结构能简单的~~看看就明白了 !我也自学呢~~

[此贴子已经被作者于2006-3-28 12:05:17编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-03-28 12:04
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
得分:0 
谢了哈

几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-03-28 12:55
快速回复:请指教....如何改进..
数据加载中...
 
   



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

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