第五章学习小结——书和二叉树

 

 

 

 

 

 

 一、(1)

 

 

 

(2)树的层次遍历需要用到队列;

(3)如:在一棵度为3的树T中,若有10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶子结点个数为?

   答:22个,分支总数 = 10*3 + 1*2 + 10*1 = 42 ,结点总数 = 分支总数+1, 又结点总数=10+1+10+x,得 x=22.

(4)建立二叉树

先把第一个元素拿出来作为根节点;
第二步,把第二个元素拿出来与第一个元素做比较,如果比根节点大就放在右边,如果比根节点小就放在左边;
同样的道理 拿出来第三个元素再与根节点进行比较;
上一步已经把二叉树的第二层填满了,接下来的元素首先要与根节点进行比较,再与子树的节点进行比较;

https://jingyan.baidu.com/album/c910274bfb701ecd361d2deb.html?picindex=1

(5)动态数组

  如:int *child=new int[n];

 动态数组初始化

  a.元素只能初始化为元素类型的默认值,而不能像数组变量一样,用初始化列表为数组元素提供各不相同的初值。

  b.对于内置数据类型元素的数组,必须使用()来显示指定程序执行初始化操作,否则程序不执行初始化操作:

  如:int *child=new int[10]// 每个元素都没有初始化

    int *child = new int[10] ();  // 每个元素初始化为0

  c.类类型元素的数组,则无论是否使用(),都会自动调用其默认构造函数来初始化:

  string *child = new string[10];  // 每个元素调用默认构造函数初始化

  string *child = new string[10]();  // 每个元素调用默认构造函数初始化

二、

树和二叉树要能够比较熟练且深刻的掌握递归思路,我还需要再学习再理解;

刚开始我一直在纠结树的逻辑结构和储存结构,在逻辑和实际分析时它是棵树,但在储存上它可能只是一个结构体数组,在做练习、讨论作业后才有个更进一步认识。

三、

图和树也有些联系而且重要,我要在学好图的同时回顾树的知识,再看和分析代码。

 

posted @ 2020-05-30 00:02  李艳美  阅读(193)  评论(0编辑  收藏  举报