数据结构 第五章学习小结

第五章是关于树与二叉树的学习

首先在第一节的树与二叉树的学习中,我们应该要掌握属的一些基本术语如:结点的度指的是结点拥有的子树数,有序树和无序树的概念;而在二叉树的定义当中,我们要注意到左右子树为空的情况以及空二叉树。

然后在第四节的二叉树的性质学习当中,需要区分的是满二叉树与完全二叉树的区别;(在我的理解上完全二叉树就是直接在满二叉树上进行删减);还有基本定理,我最容易忘记的就是,在一棵二叉树上,度为0的结点n0=n2+1.,还有一些关于二叉树的深度的求解等的求解,比较简单,在此就不一一列举。在存储结构上,我们最需要注意的是二叉树的链式存储。下面用代码来表示:

typedef struct BiTNode{
int data;//数据域
struct BiTNode *lch,*rch;//创建左右孩子指针
}BiTNode,*BiTNode;

第五节是遍历二叉树:我们要熟悉先序,后序,中序的遍历操作(分别为根左右,左右根,左根右);然后就是一些算法的实现(中序遍历递归算法,先序遍历顺序建立二叉链表,计算二叉树的深度以及二叉树的节点个数),这些还是要多看看书来熟悉,切记!切记!切记!

第六节是树和森林,这里由我们需要掌握的代码。

关于孩子链表的树的定义:

#define MAXSIZE 100
typedef struct ChildNode{//孩子节点
    int data;//孩子的下标
    struct ChildNode *next;//指向下一个孩子
    }ChildNode;
typedef struct PrNode{//亲节点
    int parent;//亲节点下标
    char data;//就是ABCD那些数据域
    ChildNode *headchildren;//指向孩子链表的头指针
    }PrNode;
typedef struct Tree{//树的定义
   PrNode a[MAXSIZE];
   int root;//根节点下标
   int n;//节点个数
   }Tree;

第七节是哈夫曼树:要注意权值和路径等的定义,还有哈夫曼树的构造过程,比较简单,多回归课本就好!

然后,自己的上周的小测成绩比较差,要好好反省一下!

posted @ 2020-05-31 21:18  20191003037魏云龙  阅读(117)  评论(0编辑  收藏  举报