社区
C++ 语言
帖子详情
怎么画二叉树
yel_hb
2009-04-16 10:16:03
大家有什么办法能在控制台程序中画一棵任意二叉树吗?实在没想到什么好的办法~特此请教各位~^^
...全文
364
7
打赏
收藏
怎么画二叉树
大家有什么办法能在控制台程序中画一棵任意二叉树吗?实在没想到什么好的办法~特此请教各位~^^
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zgjxwl
2009-04-18
打赏
举报
回复
用setw()进行格式化输出
S_zxing
2009-04-18
打赏
举报
回复
强大,顶一下……
ryfdizuo
2009-04-17
打赏
举报
回复
主要是格式化一下输出就行了啊。
xing_cq
2009-04-17
打赏
举报
回复
怎么这么多的错误啊
jixingzhong
2009-04-16
打赏
举报
回复
其中包含了各类输出方式,根据你的要求,在输出的时候进行格式控制即可
jixingzhong
2009-04-16
打赏
举报
回复
二叉树实现源代码如下:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
typedef int status;
typedef struct BiNode
{
char Data;
struct BiNode* lChild;
struct BiNode* rChild;
}BiNode,*pBiNode;
status CreateTree(BiNode** pTree);
status PreOrderTraval(BiNode* pTree);
status Visit(char Data);
status Display(BiNode* pTree,int Level);
status Clear(BiNode* pTree);
BiNode *pRoot=NULL;
main()
{
clrscr();
CreateTree(&pRoot);
printf("\nPreOrder:");
PreOrderTraval(pRoot);
printf("\n");
printf("\nInOrder:");
InOrderTraval(pRoot);
printf("\n");
printf("\nPostOrder:");
PostOrderTraval(pRoot);
printf("\n");
printf("\nShowLeaves:");
ShowLeaves(pRoot);
printf("\n-----------------------\n");
printf("\n");
Display(pRoot,0);
printf("\n");
printf("\nDeleting Tree:\n");
DelTree(pRoot);
printf("BiTree Deleted.");
getch();
}
status CreateTree(BiNode** pTree) /*Input Example: abd##e##cf##g##*/
{
char ch;
scanf("%c",&ch);
if(ch==‘#‘)
{
(*pTree)=NULL;
}
else
{
if(!((*pTree)=(BiNode*)malloc(sizeof(BiNode))))
{
exit(OVERFLOW);
}
(*pTree)->Data=ch;
CreateTree(&((*pTree)->lChild));
CreateTree(&((*pTree)->rChild));
}
return OK;
}
status PreOrderTraval(BiNode* pTree)
{
if(pTree)
{
if(Visit(pTree->Data))
{
if(PreOrderTraval(pTree->lChild))
{
if(PreOrderTraval(pTree->rChild))
{
return OK;
}
}
}
return ERROR;
}
else
{
return OK;
}
}
status InOrderTraval(BiNode* pTree)
{
if(pTree)
{
if(InOrderTraval(pTree->lChild))
{
if(Visit(pTree->Data))
{
if(InOrderTraval(pTree->rChild))
{
return OK;
}
}
return ERROR;
}
return ERROR;
}
else
{
return OK;
}
}
status PostOrderTraval(BiNode* pTree)
{
if(pTree)
{
if(PostOrderTraval(pTree->lChild))
{
if(PostOrderTraval(pTree->rChild))
{
if(Visit(pTree->Data))
{
return OK;
}
return ERROR;
}
}
return ERROR;
}
else
{
return OK;
}
}
status Visit(char Data)
{
printf("%c",Data);
return OK;
}
status Display(BiNode* pTree,int Level)
{
int i;
if(pTree==NULL) return;
Display(pTree->lChild,Level+1);
for(i=0;i<Level-1;i++)
{
printf(" ");
}
if(Level>=1)
{
printf("--");
}
printf("%c\n",pTree->Data);
Display(pTree->rChild,Level+1);
}
status ShowLeaves(BiNode* pTree)
{
if(pTree)
{
if(ShowLeaves(pTree->lChild))
{
if(ShowLeaves(pTree->rChild))
{
if((pTree->lChild==NULL)&&(pTree->rChild==NULL))
{
if(!Visit(pTree->Data))
{
return ERROR;
}
}
return OK;
}
}
return ERROR;
}
else
{
return OK;
}
}
status DelTree(BiNode* pTree)
{
if(pTree)
{
if(DelTree(pTree->lChild))
{
if(DelTree(pTree->rChild))
{
printf("Deleting %c\n",pTree->Data);
free((void*)pTree);
return OK;
}
}
return ERROR;
}
else
{
return OK;
}
}
猫已经找不回了
2009-04-16
打赏
举报
回复
画一颗..
打印空格,打印符号.
如何用c++
画
图_如何优雅地
画
好
二叉树
写文章的过程中,我发现自己
画
的
二叉树
简直太丑了。最近几天我研究了一下如何优雅的
画
好一颗
二叉树
。先放几个图大家欣赏一下,希望大家与我交流更好的
画
图方法。图1 优雅
画
图法
画
二叉树
图2 优雅
画
图法
画
二叉树
图3 优雅
画
图法
画
二叉树
图4 优雅
画
图法
画
二叉树
现在开始,给大家推介一款可视化图形软件Graphviz。Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室...
用C++ OpenCV 来
画
颗
二叉树
吧
用C++ OpenCV 来
画
颗
二叉树
吧1.
画
树1.1.生成空白图片1.2.
画
出每个结点的位置1.3.
画
出结点之间的连线2.路径序列2.1.使用路径序列表示
二叉树
2.2.生成路径序列3.使用路径序列生成
二叉树
图像 在调试一些
二叉树
相关的算法的时候把树
画
出来看会比较直观,自己想了一个挺简单直观的方法。
画
一颗
二叉树
分成3步 1.构建一颗
二叉树
2.生成路径序列 3.根据路径序列
画
出树 第1步构建
二叉树
就不说了网上一抓一大把,第2步生成路径序列放在后面讲,先说第3步
画
树。 1.
画
树
画
树可以分为3个步骤 生成空
《
画
解数据结构》之
画
解
二叉树
30张彩图,
二叉树
详解
二叉树
已知后序序列和中序序列,或已知前序序列和中序序列,
画
出
二叉树
(简单易懂)
按着步骤来慢慢
画
,必懂
使用Graphviz
画
二叉树
1.安装graphviz sudo apt-get install graphviz 2.编写.dot文件 vi test.dot digraph abc{ a; b; c; d; e; a->b [label=left] a->e [label=abc] b->d e->d } 3.
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章