| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:关于二cha树的问题
只看楼主 加入收藏
LegendofMine
该用户已被删除
收藏
已结贴  问题点数:20 回复次数:2 
关于二cha树的问题
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: cha 
2010-06-03 17:57
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:20 
如果程序是你自己思考后写出的,证明你的编程逻辑上了一个档次。
但仍有小问题,比如说不会初始化。这次你就是吃了这个亏。
不要小看这条简单的语句。
BiTree T = NULL;

程序代码:
#include <stdio.h>
#include <malloc.h>
#define maxsize 100
typedef char ElemType;
typedef struct node
{
    ElemType data;
    struct node *lchild,*rchild;
}BiNode,*BiTree;
typedef struct stack
{
    int tag;
    BiTree t;
}stack;
BiTree CreatBiTree();
void Way_to_root(BiTree T,ElemType x);
int main()
{
    BiTree T;
    ElemType x;
    T=CreatBiTree();
    getchar();
    scanf("%c",&x);
    Way_to_root(T,x);
    return 0;
}

BiTree CreatBiTree()
{
    BiTree T = NULL;
    ElemType x;
    scanf("%c",&x);
    if(x!='@')
    {
        T=(BiTree)malloc(sizeof(BiNode));
        T->data=x;
        T->lchild=CreatBiTree();
        T->rchild=CreatBiTree();
    }
    return T;
}
void Way_to_root(BiTree T,ElemType x)//查找路径函数
{
    BiTree p;
    stack tree[maxsize];
    int i,k;
    i=0;
    p=T;
    while(i>0||p)
    {
        while(p)
        {
            tree[++i].t=p;
            tree[i].tag=0;
            p=p->lchild;
        }
        while(tree[i].tag==1&&i>0)
        {
            if(tree[i].t->data==x)//出栈时进行比较
            {
                for(k=1;k<=i;k++) printf("%c ",tree[k].t->data);
                return ;
            }
            i--;
        }
        if(i>0)
        {
            p=tree[i].t->rchild;
            tree[i].tag=1;
        }
    }
}


编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-03 20:44
LegendofMine
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-03 21:31
快速回复:关于二cha树的问题
数据加载中...
 
   



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

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