问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

输出二叉树树形的数据结构程序代码怎么写

发布网友 发布时间:2022-04-25 12:42

我来回答

2个回答

热心网友 时间:2023-05-02 08:59

下面这个算法能帮你:
/*二叉树的建立与遍历

以二叉链表作为存储结构,定义二叉树类型 bitree;

实现二叉树的以下运算

建立 create( ) 输入二叉树的结点元素,建立二叉链表。

选择一种遍历方式(先序、中序、后序)遍历这棵二叉树。 */
#include <stdio.h>
struct node
{
char data;
struct node *lchild,*rchild;
};

/****************************二叉树的创建*****************************/
struct node *creat_bintree(struct node *t)
{
char ch;
printf("\n 按照先序序列输入二叉树的每个值,空格代表空树:");
ch=getchar();
getchar();
if( ch==' ')
t=NULL;
else
{
t = (struct node *)malloc(sizeof(struct node));
t->data=ch;
t->lchild = creat_bintree( t->lchild );
t->rchild = creat_bintree( t->rchild );
}
return(t);
}
/****************************二叉树的先序遍历*****************************/
void preorder(struct node *t )
{
if (t)
{
putchar(t->data);
preorder(t->lchild);
preorder(t->rchild);
}
}
/****************************二叉树的中序遍历*****************************/
void inorder(struct node *t )
{
if (t)
{
inorder(t->lchild);
putchar(t->data);
inorder(t->rchild);
}
}
/****************************二叉树的后序遍历*****************************/
void postorder(struct node *t )
{
if (t)
{
postorder(t->lchild);
postorder(t->rchild);
putchar(t->data);
}
}

void main()
{
struct node *t;
t=creat_bintree(t);
if (t)
{
printf("\n after preorder:\n");
preorder(t);
printf("\n after inorder:\n");
inorder(t);
printf("\n after postorder:\n");
postorder(t);
}
}

热心网友 时间:2023-05-02 08:59

Status Print(BiTree* &T, int layer)
{
if (!T)
{
return OK;
}
else
{
Print(T->Rightchild, layer + 1);
for (int i = 0; i < layer; ++i)
{
PrintChar(' ');
}
PrintData(T);
PrintChar('\n');
Print(T->Leftchild, layer + 1);
}
}

layer代表的是递归调用的层次,这个是比较简单算法,空间复杂度为O(depth),depth是二叉树的深度,时间复杂度为O(n),n是二叉树结点的个数。

数据结构算法设计——统计二叉树叶子结点的个数,并输出结果

代码如下:include&lt;stdio.h&gt; include&lt;stdlib.h&gt; typedef struct BiTNode { char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void CreatTree(BiTree &amp;A){ char ch;scanf("%c",&amp;ch);if(ch=='#'){ A=NULL;} else { A=new BiTNode;A-&gt;data=ch;CreatTree(A-&gt;lchild);CreatTre...

关于数据结构C语言二叉树的程序,请人帮忙看看~谢谢

if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))exit(OVERFLOW);/**T.data=ch;*/T-&gt;data=ch; //楼主要仔细研究一下指向运算符"-&gt;"和结构体成员运算符"."的区别,此程序中N多错误都是因为没有区分它们引起的 CreateBiTree(T-&gt;lchild);CreateBiTree(T-&gt;rchild);} } status DLR(BiTree roo...

数据结构中用c语言建立二叉树的程序

include "stdio.h"include "stdlib.h"include "malloc.h"typedef struct Bnode //二叉树节点类型 { int m;struct Bnode *Lchild,*Rchild;}Btnode, *BTptr;typedef struct Dnode //队列节点类型 { Btnode *pr;struct Dnode *next;}Qnode,*Qlink;typedef struct //q节点类型 { Qnod...

数据结构中关于用c++语言建立二叉树的问题,求代码,急!!!

postOrder(root-&gt;RChild);/*后序遍历右子树*/ printf("%c",root-&gt;data);/*输出结点*/ } } void main(){ BiTree T;printf("建立二叉树,请输入序列:\n");CreateBiTree(&amp;T);printf("\n输出前序序列为:");preOrder(T);printf("\n输出中序序列为:");inOrder(T);printf("\n输出后...

数据结构二叉树的基本操作~~~

include &lt;string.h&gt; include &lt;stdlib.h&gt; define OK 1 define NULL 0 define FALSE 0 typedef struct BiTNode{ //定义链式二叉树结构体 char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTree T;char ch;int flag=0;int createBiTree(BiTree &amp;T){ //按先序输入二叉树中结点的值...

从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序...

define MaxSize 10 define Number 30 struct BiTNode{//定义数据结构 char data;BiTNode *lchild,*rchild;};void InitBtree(BiTNode * &amp;BT){//初始化二叉树 BT=NULL;} void CreateBiTree(BiTNode *&amp;BT,char *str){//建立二叉树 BiTNode *s[MaxSize];int top=-1;BT=NULL;BiTNode *p=NULL;i...

求数据结构高手编个程序搞定实验。二叉树创建、先序遍历读出、中序遍历...

//Status是函数的类型,其值是函数结果状态代码 typedef int Status;/* 定义二叉树结点类型 */ typedef char ElemType;/* 定义二叉树的数据结构 */ typedef struct BTreeNode { ElemType data; // 存储结点值 struct BTreeNode* lchild; // 左孩子指针 struct BTreeNode* rchild; // ...

c语言 关于二叉树的创建和遍历(中序遍历)

struct BiTNode{//定义数据结构 char data;BiTNode *lchild,*rchild;};void InitBtree(BiTNode * &amp;BT){//初始化二叉树 BT=NULL;} void CreateBiTree(BiTNode *&amp;BT,char *str){//建立二叉树 BiTNode *s[MaxSize];//这里定义了一个数组用作堆栈方便检查输入和操作 int top=-1;BT=NULL;BiTNode...

求数据结构二叉树查找结点及其父节点的代码,谢谢!!!

build_tree(1,x);//构建二叉树(结构体数组模拟)cin&gt;&gt;m;//查询次数 for(int i=0;i&lt;m;i++){ int num,y;cin&gt;&gt;num;//查询值 y=mp[num];//mp[num]是num在tree数组中的位置,查询效率O(log2n)y/=2;//左右孩子的下标除以2,就是父节点的下标 if(y==0){//父节点下标为0,既是...

C语言版数据结构程序设计求大神帮助

/* 二叉树应用 */ #include "stdio.h" #include "stdlib.h" typedef char ElemType; /* 结点数据的类型 */ typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild; }BiTNode; /* 树结点类型 */ /*栈的定义及基本操作*/ #define MaxSize 100 typedef BiTNode* SElemType; ...

数据结构树和二叉树 二叉树数据结构 数据结构完全二叉树 数据结构二叉树遍历 数据结构二叉树实验报告 二叉树中序遍历怎么看 树形数据结构详解 java树形数据结构 数据结构中的树
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
极光是如何产生的 极光是怎么发生的 ...过世早长辈一直帮我现在我工作了想买点啥东西去看望长辈?_百度... ...公司是否有年龄的限制?有哪些需要注意事项? 兴化莆田史称 地铁2033如何安装,最好有图文。 地铁2033的安装问题 地铁2033安装方法! 地铁2033安装盘怎么安装 求教怎么装《地铁2033》 jump歌词 二叉排序树如何按树状输出屏幕 二叉链表的树形输出 树状输出二叉树 我是开车下乡卖菜的,我22岁,,我想问问别人问我是做什么工作的我该怎么... ...注意是卖菜,不是买菜,一个人说:这就是个卖菜的? psd文件不能在文件夹中预览,怎么处理?(已正常安装photoshop cs2)_百 ... win7怎样可以预览PSD文件? 脑筋急转弯 什么人的工作整天忙得的团团转? 整天忙忙碌碌的生活,心里不感觉很累吗 每天都很忙,这样到底是过得充实还是过的很累呀? 整天的忙碌,不知人生的意义在何处? 崔明一整天忙的焦头烂额,把人物的心情写具体 整天因为生意天天忙的跟孙子是的怎么办?因为生意天天赴宴喝酒,家人孩子... 整天都是忙碌的,从早忙到晚,可否休息下 也不知道天天在忙啥,一到公司就忙得披头撒发的,回家还好多家务事,钱没... 我觉得生活好累,整天忙死忙活还要受气,我该怎么办? 整天忙个不停,活得很累,但从来不缺钱花的生肖都有哪些? 总感觉自己每天忙的莫名其妙是怎样的体验? 为什么每天忙得要死却感觉自己碌碌无为? 每天忙得像陀螺是何种状态? 求二叉树树形输出C++代码 数据结构,求二叉树的创建和树形输出的程序 请教各位高手《数据结构》,按树状打印二叉树的一个问题,请赐教啊... 假设以二叉链表存储的二叉树中,每个结点所含数据元素均为单字母,试编写... 二叉树的输出格式问题 求数据结构(C语言版)建立二叉树的代码~~急~~谢谢了 数据结构之二叉树 急急急:关于二叉树的算法 遍历 左右子树交换 用类C语言 要详细代码... c++树形输出一棵非二叉树 处理树形结构,为什么经常转换成二叉树 c语言二叉树程序,为什么我这个显示的不是树装啊? 二叉树遍历问题 我们有个数据结构的哈夫曼编码解码的课程设计,你能帮帮我吗 数据库树形结构属于哪个章节 ...的子树的深度 最好是能输入二叉树 然后输出树形再输入x 数据结构树和二叉树有哪些实际应用? 噪音标准是多少分贝 5ghz 哪一个信道最快? 谁知道天正建筑软件怎么使用? 在雨季时我们应该注意哪些问题?