朋友,如果你觉得我的回答能令你满意,能否将你的一百分给我,我现在急需这一百分啊。

/* 二叉树的建立与遍历 */

# include

# include

typedef int Etype;

typedef struct BiTNode /* 树结点结构 */

{ Etype data;

struct BiTNode *lch,*rch;

}BiTNode;

/* 函数原形声明 */

BiTNode *creat_bt1();

BiTNode *creat_bt2()

void inorder(BiTNode *p);

void numb(BiTNode *p);

BiTNode *t; int n,n0,n1,n2,;

/* 主函数 */

main()

{ char ch; int k;

do { printf("\n\n\n");

printf("\n\n 1。

建立二叉树方法1 ");

printf("\n\n 2。 建立二叉树方法2");

printf("\n\n 3。 中序递归遍历二叉树");

printf("\n\n 4。

计算树中结点个数");

printf("\n\n 5。 结束程序运行");

printf("\n======================================");

printf("\n 请输入您的选择 (1,2,3,4,5,6)"); scanf("%d",&k);

switch(k)

{ case 1:t=creat_bt1( );break; /* 调用性质5建立二叉树算法 */

case 2:t=creat_bt2( );break; /* 调用递归建立二叉树算法 */

case 3: { inorder(t); /* 调用中序遍历 */

printf("\n\n 打回车键,继续。

“); ch=getch();

} break;

case 4:{ n=0;n0=0 ; n1=0; n2=0; /* 全局变量置0 */

numb(t);

printf(“\n 二叉树结点总数 n=%d”,n);

printf(“\n 二叉树叶子结点数 n0=%d”,n0);

printf(“\n 度为1的结点数 n1=%d”,n1);

printf(“\n 度为2的结点数 n2=%d”,n2);

printf("\n\n 打回车键,继续。

“); ch=getch();

} break;

case 5: exit(0);

} /* switch */

printf("\n ----------------");

}while(k>=1 && kdata=e; p->lch=NULL; p->rch=NULL;

v[i]=p;

if (i==1) t=p; /* 序号为1的结点是根 */

else{ j=i/2;

if(i%2==0) v[j]->lch=p; /* 序号为偶数,做左孩子*/

else v[j]->rch=p; /* 序号为奇数,做右孩子*/

}

printf("\n i,data=?"); scanf("%d,%d",&i,&e);

}

return(t);

} /* creat_bt1 */

/* 模仿先序递归遍历方法,建立二叉树 */

BiTNode *creat_bt2()

{ BiTNode *t;

printf("\n data="); scanf("%d",&e);

if(e==0) t=NULL; /* 对于0值,不分配新结点 */

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

t->data=e;

t->lch=creat_bt2(); /* 左孩子获得新指针值 */

t->rch=creat_bt2(); /* 右孩子获得新指针值 */

}

return(t);

} /* creat_bt2 */

/* 中序递归遍历二叉树 */

void inorder(BiTNode *p)

{ if (p) { inorder(p->lch);

printf("%3d",p->data);

inorder(p->rch);

}

} /* inorder */

/* 利用中序递归遍历二叉树的方法,计算树中结点个数 */

/* 读者可以试着运用先序或后序递归遍历二叉树方法重新编写这一段函数 */

void inorder(BiTNode *p)

{ if (p) { inorder(p->lch);

{ printf("%3d",p->data);

n++;

if(p->lch==NULL && p->lch==NULL) n0++;

if((p->lch==NULL && p->lch!=NULL)||

(p->lch!=NULL && p->lch==NULL) n1++;

if(p->lch!=NULL && p->lch!=NULL) n2++;

} /* 把访问的功能扩大了 */

inorder(p->rch);

}

} /* inorder */。

全部

c语言创建二叉树从小到大_用C语言编写二叉树的建立与遍历相关推荐

  1. Linux c语言 creat参数,C++_使用C语言操作文件的基本函数整理,C语言creat()函数:创建文件函 - phpStudy...

    使用C语言操作文件的基本函数整理 C语言creat()函数:创建文件函数 头文件: #include #include #include 定义函数: int creat(const char * pa ...

  2. java和c语言有关联吗_关于JAVA语言,和C语言有什么联系吗?

    展开全部 Java语言由语法规则和类库两部分组成,其中语法规则确定了Java程序的书写规范,62616964757a686964616fe59b9ee7ad9431333337626264学习好语法规 ...

  3. c语言不安全库_为什么 C 语言仍然占据统治地位?

    作者 | Serdar Yegulalp 译者 | 王艳妮,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 没有什么技术可以应用长达50年之久,除非它真的比大多数其他东西都 ...

  4. c语言api文档_初学 C 语言没有项目练手?这 20 个小项目拿走不谢

    C 语言是大多数人的编程入门语言,但很多初学者在学习的过程中难免会出现一些迷茫,比如:不知道 C 语言可以开发哪些项目,可以应用在哪些实际的开发中--今天我们收集了 20 个 C 语言练手项目,提供了 ...

  5. 单片机c语言编程300例_趣味c语言编程100例(四)

    经典c程序100例==81--90 [程序81] 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,及809*? ...

  6. 语言 读ini文件_让C语言的调试更加高大上

    一般在写一个项目的时候,为了更直观的调试,我们在程序里都会打printf调试语句,随着项目越写越多,printf也会越来越多,但项目准备结尾的时候,这时候开始优化就会发现,你想完全把printf语句都 ...

  7. Java语言程序设计实验指导_《java语言程序设计》上机实验指导手册(4).doc

    <java语言程序设计>上机实验指导手册(4).doc 1JAVA语言程序设计上机实验指导手册(4)2实验四JAVA面向对象编程1[目的]①通过编程和上机实验理解JAVA语言是如何体现面向 ...

  8. c语言三个数从小到大排序/输出_C语言经典100题(6)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(5)中第三部分编程题的答案: #include int main(){ int x,y,z,t; printf("\n请输入三个 ...

  9. r语言数据变量分段_使用R语言实现数据分段

    使用R语言实现数据分段 今天跟大家讲讲我工作中用到的数据分段,数据分段一般在什么地方会使用到呢?评分.之前写过一篇<实战: RFM>模型使用,那篇文章就详细介绍了CRM(客户关系管理)分析 ...

  10. java语言程序设计期中考试_《java语言程序设计》期中试卷(答案).doc

    <java语言程序设计>期中试卷(答案).doc JAVA语言程序设计期中试卷第1页共6页2009-2010学年第一学期JAVA语言程序设计期中试卷(答案)院系计算机年级2006专业计算机 ...

最新文章

  1. 【攻防世界001】Guess-the-Number
  2. Solr vs ElasticSearch,搜索技术哪家强
  3. hubliderx如选择相同单词_高考英语,十六种高效单词记忆法,建议人手一份!
  4. 利用一维数组求菲波那契数列前40项的和并输出结果。_[W2D2]斐波那契数列
  5. java 数据库连接不上_真心求助用java连接数据库时为什么总是连接不上
  6. DPDK跟踪库:trace library
  7. 解决bert在文本长度的问题的方案,篇章级
  8. CoreAnimation-CAKeyframeAnimation
  9. ubuntu上 grafana + influxdb + telegraf 安装配置
  10. 关于高性能负载均衡架构,这些知识点大多数人不知道!
  11. BMFont制作美术字体包教包会
  12. 计算器linux源码,强悍的C++程序实现计算器的linux源程序(国外英文资料).doc
  13. 呼呼呼呼呼呼呼呼呼好
  14. 记2017第八届蓝桥杯决赛(国赛)—北京三日游
  15. powershell牛逼啊.
  16. JAVA学习日记DAY14-15--javascript
  17. 根据域名展示对应备案号内容的共用站点默认页面index.html
  18. go语言数据类型之切片slice
  19. Error in nextTick: “TypeError: Cannot read property ‘xxx‘ of undefined“
  20. HEVC 常用之 CU、PU、TU分析

热门文章

  1. Android指纹验证(BiometricPrompt)
  2. Unity Shader-Phong光照模型与Specular
  3. ipad+pdfexpert+webdav 双向同步文件
  4. 蓝牙音频传输格式-AAC
  5. POJ 1392 Ouroboros Snake G++ 看博友方法挺多的 dfs 没掌握
  6. 利用数据库在java实现已读未读消息公告
  7. 【递归练习】算24点
  8. Python代码画喜羊羊怎么画_Python画图的这几种方法,你学会了吗
  9. js正则表达式限定输入框内容为非负数
  10. 多次调用 BAPI 之后,最后一次性 COMMIT WORK,会有什么问题吗?