博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5)二叉树
阅读量:5024 次
发布时间:2019-06-12

本文共 2217 字,大约阅读时间需要 7 分钟。

1)二叉树的遍历“

        先序遍历-->DLR

        中序遍历--》LDR

        后序遍历”--->LRD

   L就是左子树   R就是右子树   D就是根部节点(但是需要牢记 对每一个节点的查看都是 “”“先左后右”)

 

2)基础补充

  

      

 

3)下面是案例来讲解  怎么遍历:

  

        我们拿这张图举例子:

                  

 

       首先讲解 先序遍历:

                就是先根 再左  再右-->A,然后是A的左子树那么就是B所代表的树,但是B还是一个树  所以还是按照DLR,就是B,下面该是B的左子树了,但是B的左子树是空的,所以接下来就是B的右子树,也就是C那棵树,但是C韩式一棵树,还得按照DLR顺序,也就是CDE,然后回去  该A的右子树了,是F代表的子树,但是F还是一棵树,所以 就是F,他的左子树没有,该是G子树了,GH

                整个顺序就是:ABCDEFGH

      

      下面就是中序遍历,其实和先序遍历的结果一样,只不过按照的顺序是LDR    --->结果最终是BDCEAFHG

      后序遍历--->结果是  就是LRD    ---->DECBHGFA

 

4)代码编写:

     简单代码展示:

  

1 #include
2 #include
3 #include
4 5 6 using namespace std; 7 //二叉树节点 8 typedef struct node 9 {10 char ch;11 struct node* Lchild;12 struct node* Rchild;13 }NODE,*PNODE;14 15 //下面是遍历16 17 void Recursion(PNODE root)18 {19 if(root==NULL)20 {21 return ;22 23 }24 ////先是先序遍历,先访问根25 //cout<
ch<
Lchild);28 ////然后遍历他的右子树29 //Recursion(root->Rchild);30 31 ////中序32 //Recursion(root->Lchild);33 //cout<
ch<
Rchild);38 //后序遍历39 //然后遍历左子树40 Recursion(root->Lchild);41 //然后遍历他的右子树42 Recursion(root->Rchild);43 //根44 cout<
ch<

 

 5)获得子节点数目:

 

  

1 #include
2 #include
3 #include
4 5 6 using namespace std; 7 //二叉树节点 8 typedef struct node 9 {10 char ch;11 struct node* Lchild;12 struct node* Rchild;13 }NODE,*PNODE;14 15 //下面是遍历16 static int lnum=0;17 void Recursion(PNODE root)18 {19 20 if(root==NULL)21 {22 return ;23 24 }25 if(root->Lchild==NULL&&root->Rchild==NULL)26 {27 lnum++;28 }29 ////先是先序遍历,先访问根30 //cout<
ch<
Lchild);33 ////然后遍历他的右子树34 //Recursion(root->Rchild);35 36 ////中序37 //Recursion(root->Lchild);38 //cout<
ch<
Rchild);43 //后序遍历44 //然后遍历左子树45 Recursion(root->Lchild);46 //然后遍历他的右子树47 Recursion(root->Rchild);48 //根49 cout<
ch<

 

 

        

转载于:https://www.cnblogs.com/xiaoyoucai/p/8555182.html

你可能感兴趣的文章
DZ!NT论坛 3.6.711删除用户各种错解决方案
查看>>
C#微信登录-手机网站APP应用
查看>>
HTML5实践 -- iPhone Safari Viewport Scaling Bug
查看>>
1.4 - 数据类型/字符编码练习题
查看>>
JAVAWEB 一一 Hibernate(框架)
查看>>
函数式编程基础(F#,JS)
查看>>
IntelliJ IDEA使用教程
查看>>
将ASP.NET页面内的数据导出到Excel 或 Word中
查看>>
unity入门笔记
查看>>
html5的cavans
查看>>
闰年测试
查看>>
JSP笔记(一)
查看>>
Android工具HierarchyViewer 代码导读(1) -- 功能实现演示
查看>>
Java基础——多态
查看>>
python-Django与Nginx整合gunicorn模块
查看>>
Java--集合框架
查看>>
基础 - client可视区域
查看>>
JavaScript中正则表达式判断匹配规则以及常用的方法
查看>>
201571030334/201571030323实验三 软件工程结对项目
查看>>
BZOJ 1452: [JSOI2009]Count [二维树状数组]
查看>>