| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4689 人关注过本帖, 1 人收藏
标题:如何显示二叉树
取消只看楼主 加入收藏
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
结帖率:100%
收藏(1)
已结贴  问题点数:100 回复次数:1 
如何显示二叉树
最近想练习下二叉树的代码,发现大部分练习都是在纸上画个二叉树,然后再写什么先序、中序、后序,最后将运行结果对比纸上的二叉树检验,可你怎么知道你创建的二叉树就是正确的呢?因此就费了点功夫写了个二叉树显示代码,虽然能完成显示功能,但我觉得算法稍嫌啰嗦,应该有更简洁的写法,特提出供各位集思广益,我的不含二叉树显示的练习代码如下(同时提供一个4层满树和一个6层随机树显示效果):
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char cnum;
typedef struct node
{
    char c;
    node *lc,*rc;
}tree,*list;

list creat(list root,int lv)
{
    if(lv<2||(rand()%6<6&&lv<4))    //创建4层满树
    //if(lv<2||(rand()%6<4&&lv<6))    //创建6层随机树
    {
        root=(list)malloc(sizeof(tree));
        root->lc=root->rc=NULL;
        root->c=cnum++;
    }
    else return NULL;
    root->lc=creat(root->lc,lv+1);
    root->rc=creat(root->rc,lv+1);
    return root;
}
void listtree(list root)
{//显示树
//各位高手可在此大显神通,填充可显示二叉树的代码
}
void main()
{
    list root=NULL;
    srand((unsigned int)time(NULL));
    cnum='A';
    root=creat(root,0);
    listtree(root);
}
搜索更多相关主题的帖子: 显示 二叉树 代码 list NULL 
2017-10-21 04:31
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 7楼 azzbcc

后面有空再发自己在二叉树方面代码。
2017-10-24 20:50
快速回复:如何显示二叉树
数据加载中...
 
   



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

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