二 二叉树

  1. 二叉树的存储

  • 顺序存储

  • 链式存储

  1. 二叉树的定义

typedef struct BiTNode{int data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
  1. 二叉树的遍历

  • 先序遍历

//先序遍历
int preTree(BiTree T){if(T==NULL) return 0;else{printf("%d ",T->data);preTree(T->lchild);preTree(T->rchild);}return 1;
}
  • 中序遍历

//中序遍历
int inTree(BiTree T){if(T==NULL)return 0;else{inTree(T->lchild);printf("%d ",T->data);    inTree(T->rchild);}
}
  • 后序遍历

//后序遍历
int postTree(BiTree T){if(T==NULL)return 0;else{postTree(T->lchild);postTree(T->rchild);printf("%d ",T->data);}
}
  • 例题解析

#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode{int data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;BiTree createTree(){BiTree T;int data;scanf("%d",&data);if(data==-1)return 0;else{T=(BiTree)malloc(sizeof(BiTNode));T->data=data;printf("请输入%d左子树的值:",data);T->lchild=createTree();printf("请输入%d右子树的值:",data);T->rchild=createTree();return T;}
} //先序遍历
int preTree(BiTree T){if(T==NULL) return 0;else{printf("%d ",T->data);preTree(T->lchild);preTree(T->rchild);}return 1;
}
//中序遍历
int inTree(BiTree T){if(T==NULL)return 0;else{inTree(T->lchild);printf("%d ",T->data);    inTree(T->rchild);}
}
//后序遍历
int postTree(BiTree T){if(T==NULL)return 0;else{postTree(T->lchild);postTree(T->rchild);printf("%d ",T->data);}
}int main(){BiTree S;printf("输入第一个结点的数据");S=createTree();preTree(S);printf("\n");inTree(S);printf("\n");postTree(S); return 0;
}

运行结果

第五章——树(数据结构)相关推荐

  1. 【数据结构总结】第五章 树和二叉树(非线性结构)

    第五章 树和二叉树(非线性结构) 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读和 ...

  2. 第五章 Python数据结构

    第五章 Python数据结构 本章更详细地讨论一些已经讲过的数据类型的使用,并引入一些新的类型. 5.1 列表 列表数据类型还有其它一些方法.下面是列表对象的所有方法: insert(i, x) -- ...

  3. 第五章 树16 AcWing 1628. 判断红黑树

    第五章 树16 AcWing 1628. 判断红黑树 原题链接 AcWing 1628. 判断红黑树 算法标签 平衡树 思路 代码 #pragma GCC optimize(2) #pragma GC ...

  4. 数据结构(C语言第2版) 课后习题答案之第五章 树和二叉树

    目录 第5章  树和二叉树 一.选择题 二.应用题 (1)试找出满足下列条件的二叉树 (2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C (3 ...

  5. 408数据结构考研笔记——第五章树与二叉树(重点)

    目录 一.基本概念 1.定义 2.基本术语 3.性质(重点!!) 二.二叉树 1.定义 2.特殊二叉树 1.满二叉树 2.完全二叉树 3.二叉排序树 4.平衡二叉树 3.性质 4.存储结构 1.顺序存 ...

  6. 王道408数据结构——第五章 树与二叉树

    文章目录 一.树的基本概念 树的性质 二.二叉树 满二叉树 完全二叉树 二叉排序树 平衡二叉树 二叉树的性质 完全二叉树的性质 三.二叉树的储存结构 顺序储存 链式存储 四.树的储存方式 双亲表示法 ...

  7. (王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转

    文章目录 一:AVL树基本概念 二:AVL树实现原理 (1)构建AVL树 (2)构建演示 (3)旋转方法 A:右单旋转调整(插入到较高左子树左侧) B:左单旋转调整(插入到较高右子树右侧) C:先左后 ...

  8. (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)

    文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...

  9. 王道数据结构课代表 - 考研数据结构 第五章 树和二叉树 究极精华总结笔记

    本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对数据结构知识点的理解的总结.希望对新一届的计算机考研人提供帮助!!!   关于对 树和二叉树 章节知识点总结的十分全面,涵括了<王道 ...

  10. C语言数据结构【手抄版】第五章 树和二叉树【上篇】

    注意:文中彩色代码均在Visual Studio 2022编译器中编写,本文为C语言数据结构手抄版,文中有部分改动,非原创. 目录 5.1.树的基本概念和术语 1.树的定义 2.树的表示法 3.基本术 ...

最新文章

  1. 铅笔芯为什么点不着?
  2. 无论腾讯是自主开放还是被开放,我们都表示欢迎和支持
  3. Java 洛谷 P1055 ISBN号码
  4. word文档打印 自动编码_职场老油条才知道的3个Word打印技巧,一年能节省几百张打印纸!...
  5. 魔兽世界工程学技能1-375冲级攻略
  6. java 类 加载 初始化_java中类的初始化和加载
  7. Linux---用户与用户组管理
  8. 北京科技大学 工科物理实验 大二下
  9. VB6各类源码开源 - 开源研究系列文章
  10. 安全中心服务器已关闭啥意思,启用windows安全中心服务是什么意思,windows安全中心服务关闭方法...
  11. sis最新地址获取方法_微信表情悄悄更新,获取最新表情方法!
  12. 计算机网络管理工程师证书考试试题,(信息化知识)国家信息化人才考试计算机网络工程师模拟试题.pdf...
  13. scheme唤醒app-抖音
  14. Cohort Analysis Using Python
  15. JavaScript的String的replace和replaceAll的差别
  16. pyecharts主题theme风格推荐
  17. 在自己电脑上建立SVN服务器
  18. 来自一位十余年工作经验的老电子工程师的心里话:该出手时便出手!
  19. [数据分析与可视化] 数据绘图要点9-颜色的选择
  20. 一文详解:双向ESD二极管型号及选型

热门文章

  1. css设置兄弟元素样式-兄弟选择器
  2. Python--print(xx)内容为空,打印不出内容;原因是文件句柄对象在迭代后,对象内的数据会逐渐清空
  3. 云计算基础-基本概念(一)
  4. iOS中Mach异常和signal信号介绍,以及当APP崩溃时做线程保活弹出程序异常提示框
  5. 清华大学2001年机试-字符串排序-1066
  6. $F $ 等符号的意思
  7. Java基础语法学会了,JavaScript瞄一眼就行,瞅第二眼我看不起你!
  8. 图片翻译如何操作?图片翻译的方法分享.
  9. JAVA制作网页的软件有哪些,html5开发工具(开发html5网页的软件有哪些)
  10. jQuery 即点即改