数据结构与算法笔记整理--3(郝兵)

30.线性结构复习,与非线性结构的关系

1.线性结构:
        每个节点只有一个后续节点和前驱结点,首节点(第一个有效的节点)没有前驱节点,尾节点(最后一个有效的节点)没有后续节点。
---------------------------------------------------------------------------------------
        逻辑结构: 线性(数组,链表) 
          栈(用数组或者链表实现)和队列(数组或者链表实现)是一种特殊的线性结构(是线性结构的一种特殊应用)
                          非线性(树 tree,图 graph)
---------------------------------------------------------------------------------------
        物理结构:如何将逻辑结构存储在计算机里
        数据结构的复杂之处:如何用计算机中线性的内存,来存储现实生活中复杂的数据结构

31.树的定义

专业定义:
        1.有且只有一个称为根的节点
        2.有若干个互不相交的子树,这些子树本身也是一颗树
通俗的定义:
        1.树是由节点和边(鞭)组成的
        2.每个节点只有一个父节点但可以有很多子节点
        3.但有一个节点例外,该节点没有父节点,这个节点是根节点

32.树的专业术语的解释

专业术语:

            节点:
            父节点:头上紧挨着的
            子节点:
            子孙:
            堂兄弟:
            深度:树中节点的最大层次(从根节点到最底层节点的层数称之为深度)
                      根节点是第一层
            叶子节点:没有字节点的节点
            非终端节点:实际就是非叶子节点
            度:字节点的个数称为度     

33.树的分类

一般树:任意一个节点的字节点的个数不受限制
二叉树:任意一个字节点的个数最多两个,且字节点的位置(顺序)不可更改  
                分类:
                        一般二叉树:
                        满二叉树:
                                    在不增加树层数的前提下,无法再多添加一个节点
                        完全二叉树:
                                   如果只是删除了满二叉树最底层最右边的连续若干个节点,这                                    样形成的二叉树就是完全二叉树     
                                                (完全二叉树的一个特例是满二叉树)
森林:N个互不相交的树集合



有序树:二叉树
无序树:  

34.二叉树的连续存储

树的存储:
        二叉树的存储
                    连续存储【完全二叉树】
                       优点:
                          查找某个节点的父节点和字节点的速度很快
                       缺点:
                            耗费内存过大

数据结构与算法笔记整理--3(郝兵)_第1张图片

     
                    链式存储
                                优点:耗费内存很少
                                缺点:
        一般树的存储

                    双亲表示法
                                求父节点方便
                    孩子表示法
                                求子节点方便
                    双亲孩子表示法
                                求父节点和子节点都很方便
                    二叉树表示法
                             把一个普通树转化为二叉树来存储
                             具体转换方法:设法保证任意一个节点的
                                      左指针域指向他的第一个孩子
                                      右指针域指向他的兄弟
                  注意:一个普通树转化为二叉树一定没有右子树
        森林的存储
     先将森林转为二叉树,再存储二叉树。
        (森林可以将其他树的根节点当作兄弟)
        森林没有左子树
                    

35.二叉树的操作

    二叉树的操作:

        遍历:

                先序遍历:先访问根节点,再先序访问左子树,再先序访问右子树

                中序遍历:中序遍历左子树,再访问根节点,再中序遍历右子树

                后序遍历:中序遍历左子树,再中序遍历右子树,再访问根节点

36.已知两种遍历求原始二叉树概述

已知两种遍历序列求原始二叉树:只有通过先序和中序,或通过中序和后序,我们才可以唯一的确定一个二叉树

37.已知先序和中序求后序

已知先序和中序求后序:
已知后序和中序求先序:

38.树的应用简单介绍

树是数据库中数据组织的一种重要组织形式
操作系统子父进程的关系本身就是一棵树
面向对象语言中类的继承关系(一般到特殊的关系).

 

你可能感兴趣的:(数据结构与算法)