求高手入入入!!!数据结构 关于二叉树 一棵124个叶结点的完全二叉树,最多有?结点? 答案给的

作者&投稿:居娴 (若有异议请与网页底部的电邮联系)
1.编写程序任意输入二叉树的结点个数和结点值,构造一棵二叉树,采用三种递归遍历算法(前序、中序、后序)~

tree.h

#include
#include
#define MAX_NODE 50
typedef struct BiTNode
{
char data;
BiTNode *lchild,*rchild;

}BiTNode,*BiTree;
BiTree CreateBiTree();
void InorderTraverse( BiTree T);

creatTree.cpp
#include"tree.h"

BiTree CreateBiTree()
{

BiTree T;
char ch;
scanf("%c",&ch);
if (ch=='#')
{
T=NULL;
return T;

}

else
{
T=(BiTNode *)malloc(sizeof(BiTNode));

if (T==NULL)
{
printf("树创建失败!");
T=NULL;

return T;
}

T->data=ch;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
return T;
}
}

InorderTraverse.cpp
#include"tree.h"
void InorderTraverse( BiTree T)
{
BiTree stack[MAX_NODE] ,p=T ;
int top=0 , bool1=1 ;
if (T==NULL)
printf("Binary Tree is Empty!
");
else
{
do
{
while (p!=NULL)
{
stack[++top]=p ;
p=p->lchild ;
}

if (top==0)
{
bool1=0 ;
}else{
p=stack[top] ;
top-- ;
printf("%c",p->data);
p=p->rchild ;
}
} while (bool1!=0) ;
}
}

main_fun.cpp
#include"tree.h"
int main()
{

BiTree T= CreateBiTree();
InorderTraverse(T);
return 0;

}
traverse.cpp
#include"tree.h"
void PreorderTraverse(BiTree T)
{
if (T!=NULL)
{
/* 访问根结点 */
PreorderTraverse(T->lchild) ;
printf("%c",T->data);
PreorderTraverse(T->rchild) ;
}
}

例如 输入 AB###
输出BA
先序输入 中序输出
可以修改遍历方式 来改变输出结果。

以下是二叉树类型的,如果还要,我可以帮你改。

#include "stdio.h"
#include "conio.h"


typedef struct node
{
struct node *l,*r;
}Node;
int getTreeNum(Node * k)
{
if(k!=0)
return 1+getTreeNum(k->l)+getTreeNum(k->r);
else
return 0;
}
int main()
{
Node *root=(Node*)malloc(sizeof(Node));
root->l=(Node*)malloc(sizeof(Node));
root->r=(Node*)malloc(sizeof(Node));
root->r->l=0;
root->r->r=0;

root->l->r=0;
root->l->l=(Node*)malloc(sizeof(Node));
root->l->l->l=0;
root->l->l->r=0;
printf("%d",getTreeNum(root));

getch();
}

一棵124个叶结点的完全二叉树,假设n0为叶子结点数,n1为度为1结点数,n2为度为2结点数,则有总结点数为n0+n1+n2;而n2=n0-1=123;且完全二叉树中度为1的结点只能为一个或0个,所以总结点数为124+1+123=248个


《庆余年》里的高手都有谁?实力怎么划分?
其他的高手,例如四顾剑、叶流云、苦荷(战明月)等等,那都是宗师级别的。九品以上的这些人,例如陈萍萍,能力已经是超出了想象。这些人的实力就是按照评级划分的,至于如何评定这个品级,在《庆余年》里面是没有提到的,可能是小说里有说吧?不过,这个真的不重要,范闲说过,在当今世上,九品以上的就那么...

如何在excel中得到周数?高手进!
在A2输入:=ROUNDUP(DATEDIF(DATE(YEAR(A1),1,1),A1-WEEKDAY(DATE(YEAR(A1),1,1),3)+8,"yd")\/7,0)以星期天为一周中的第一天计算,不管是什么版本,都可以。

数学高手请进@@!!!@@@!~!~!~
1.设甲城到乙城距离是x V=s\/t =2x\/(x\/40+x\/60)=48 2.设总工程为1 需要的天数=1\/(1\/a+1\/b)=ab\/a+b 3. 2:3 4.由题知 B-A=2 C-A=1 D-C=2 E=C 所以 B=C+1 A+B+C+D+E=47 (C-1)+(C+1)+C+(C+2)+C=47 5C+2=47 5C=45 C=9 A=...

汇编语言 数据长度问题 高手入
masm判断数据长度方法 指令中使用的寄存器长度,比如mov ax,mem,明显men就是16位的 代码前面ASSUM伪指令指定的数据长度,如ASSUM bx:BYTE PTR,直到取消前编译器都认为bx是存放8位数据的指针。当指令的所有操作数都为内存操作数时,必须指定其长度。你明显违反最后一条规定,16位程序默认的是16位的指针...

三星E358的手机如何导入图片或者音乐?高手入!
数据线连接电脑传输数据需要软件 PIM & File Manager 2.0,这个软件可以控制手机上存储的电话号码、信息、通话记录、日程安排、铃声、音乐、照片等所有信息(不能用来下载JAVA游戏和应用程序),USB接口的数据线还要安装驱动程序。由于数据线随机光盘内的软件比较旧,还是选择了从三星的官方网站下载了一套...

火影高手请入
九大尾兽中最强的S级妖兽,日本神话中最强的妖兽 体色为赤红色,其能力巨大,由于是唯一一只从没有被打败过的妖兽,其潜在能力无法估计,攻击方式为转动9条无限查克拉的尾巴,将生物吸近,再用可变化大小的爪将敌人撕碎,同时浑身毛发可放出无数次火元素攻击类似陨石的攻击,可瞬间毁灭一个城市,上古...

求拳皇97一线高手排名,有哪些比较厉害的?
拳皇97一线高手排名:1、吴智辉、2、福建Kyo、3、黄毅,都很厉害。吴智辉——神乐千鹤,拳皇的粉丝们相信都认识吴志辉这个大名人,重庆辉辉是一个综合能力很强的一个游戏玩家,综合实力在现在的97排在第一也不过分。不过要说他的招牌角色,就是神乐千鹤了。看过吴志辉比赛的朋友们都知道,吴志辉常用八猪...

对联高手入
①师生互爱同渡学海求知识;教学相长共攀艺峰修本领。②学如逆水行舟不进则退;业似织布穿梭无经何纬。③报晓鸡声,拂晓钟声,声声悦耳;更漏缘滴,启明晖滴,滴滴铭心。

初中数学题,各高手速度来。。。我有些地方不太懂教下我!!
设每分钟温度变化为X摄氏度,则25X=85-10,X=3 20分钟温度为70,则21分钟为73摄氏度。或21X+10=21X3+10=73 设时间为X,则3X+10=34,X=8,8分钟时候温度为34摄氏度

求数学高手,解答一个看似简单的数学问题。
收支平衡才能是不亏,从数字上看这公司赔了钱,那么按照股份两个人应该共负盈亏。14884094+386373为支出 10261941为收入 支出-收入=赔钱多少。 赔钱\/2= 每人人应赔钱多少。乙共出资80000+2035097+386373-100000 这个数字 就是实际乙方赔钱数额。 乙赔钱数-应赔数=乙方多陪多少钱.多出的钱 就...

高陵县13470029536: 求高手入入入!!!数据结构 关于二叉树 一棵124个叶结点的完全二叉树,最多有?结点? 答案给的 -
韶周今多: 一棵124个叶结点的完全二叉树,假设n0为叶子结点数,n1为度为1结点数,n2为度为2结点数,则有总结点数为n0+n1+n2;而n2=n0-1=123;且完全二叉树中度为1的结点只能为一个或0个,所以总结点数为124+1+123=248个

高陵县13470029536: 数据结构高手进!求几个题目答案
韶周今多: 2:123,132,321,213,231 3:1234,1243,1324,1342,2134,2143,2431,2341,2314,3214,3421,4321 4:

高陵县13470029536: 请教两个超简单的数据结构题? -
韶周今多: (1) 1 3 2 4 按照后进先出的原则,1先进栈马上又出栈,第一个数为1,之后2,3先后进栈,出来是后进先出,所以3出来后才是2,第二三个数为3,2,之后4先进栈后又出栈,第四个数是4,所以得到出栈序列为1 3 2 4 (2)是不能得到的.原因是上式...

高陵县13470029536: 关于数据结构的 - --高手进 -
韶周今多: 首先考虑该二叉树有多少层.我们知道二叉树的第i层有2^i(2的i次方,下同)个结点,而1+2+4+8+16+32+64+128+256<700,1+2+4+8+16+32+64+128+256+512>700,所以可以确定该二叉树有10层.前9层共有1+2+4+8+16+32+64+128+256=511个结点,所以第10层有700-511=189个结点.在第10层结点出现之前,第9层的所有结点为叶子,共有256个;而第10层的出现使得前189/2=95个结点不是叶子,同时第10层的所有结点均为叶子,所以总共有256-95+189=350个叶子.

高陵县13470029536: 关于数据结构,关于很多,求C++高手帮助 -
韶周今多: 可以考虑用栈来处理.当遇到一个数时就把它压入栈中在遇到一个逻辑判断符时,该操作符就作用于从该栈中弹出的两个数上,再将得到的结果压入栈中.去查查后缀表达式和中缀表达...

高陵县13470029536: 求高手编写数据结构试验;题目. 2.程序功能: (1) 采用链式存储或顺序存储实现栈的初始化; (2)完成栈中元 -
韶周今多: #include#define LIST_INIT_SIZE 100#define LISTINCREMENT 10 typedef struct{ int * elem; int length; int listsize; }SqList;//SqList sq; void InitList_Sq(SqList *sq) //初始化列表 { sq->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); sq->length=0; sq->...

高陵县13470029536: 请高手指导关于数据结构的问题
韶周今多: 挺简单的啊,设计两个队列1,2,1用来存放男生,2用来存放女生.(当然,也应该有两个队列3,4存放正在跳舞的男女).当一曲开始时,分别从两个队列同时依次弹出队首元素分别放到3,4,直到有个队列为空为止.当一曲结束,先把3,4依次弹出分别压入1,2.直到3,4为空. 当然有下一曲的话就再重复上面的操作..

高陵县13470029536: 《数据结构》关键路径问题【高手进】 -
韶周今多: AOE网(Activity On Edge)即边表示活动的网,是一个带权的有向无环图,其中顶点表示事件(Event),每个事件表示在它之前的活动已经完成,在它之后的活动可以开始,弧表示活动,权表示活动持续的时间.AOE网可用来估算工程的完成...

高陵县13470029536: 关于数据结构(C语言版)“二叉树”的问题
韶周今多: #include"stdio.h" #include"string.h" #define NULL 0 typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; BiTree Create(BiTree T){ char ch; ch=getchar(); if(ch=='#') T=NULL; else{ if(!(T=(BiTNode *)malloc(sizeof(...

高陵县13470029536: 有关数据结构问题...求高手指教... -
韶周今多: 输入函数:Hospital::Hospital(T a[],int n,int e){ vertexNum=n;arcNum=e; int i,j,k,value; for(i=0;i<vertexNum;i++) { adjlist[i].vertex=a[i]; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网