zoukankan      html  css  js  c++  java
  • 数据结构之树

    树:

    定义:
    专业定义:
                       1.有且只有一个称为根的节点
                        2.有若干个互不相交的子树,这些子树本身也是一颗树
    通俗定义:
                       1.树是由节点和边组成
                        2.每个节点只有一个父节点但可以有多个子节点
                        3.但又一个节点例外,该节点没有父节点,此节点称为根节点
    专业术语:
                  节点     父节点       子节点
                  子孙     堂兄弟       
                  深度:从根节点到最底层节点的层数称之为深度,根节点是第一层
                  叶子节点:没有子节点的节点
                  非终端节点:实际就是非叶子
                  度:子节点的个数称为度
    分类:
    一般树:任意一个节点的子节点的个数都不受限制
    二叉树:任意一个节点的子节点个数最多两个,且子节点的位置不可更改
        分类:
               一般二叉树
                满二叉树:在不增加树的层数的前提下,无法再多添加一个节点的二叉树就是满二叉树
                完全二叉树:如果只是删除满二叉树最底层最右边的连续若干个节点,这样形成的二叉树就是完全二叉树
    森林:n个互不相交的树的集合
    树的存储
    二叉树的存储
    连续存储【完全二叉树】
      优点:查找某个节点的父节点和子节点(也包括判断有没有子节点)速度很快
      缺点:耗用内存空间过大
    链式存储
    一般树的存储
      双亲表示法:
            求父节点方便
      孩子表示法:
            求子节点方便
      双亲孩子表示法:
            求父节点和子节点都很方便
      二叉树表示法:(孩子兄弟表示法)
            把一个普通树转化成二叉树来存储
          具体转换方法:
              设法保证任意一个节点的
                  左指针域指向它的第一个孩子
                  右指针域指向它的下一个兄弟节点
              只要能满足词条件,就可以把一个普通树转化为二叉树
    森林的存储
      先把森林转化为二叉树,再存储二叉树
    操作:(通常指二叉树的操作)
    遍历:
      先序遍历:(根左右)
        先访问根节点,再先序访问左子树,再先序访问右子树
      中序遍历:(左根右)
        中序遍历左子树,再访问根节点,再中序遍历右子树
      后序遍历:(左右根)
                    后序遍历左子树,再后序遍历右子树,再访问根节点
    已知两种遍历序列求原始二叉树:
      通过先序和中序 或者 中序和后序我们可以还原出原始的二叉树
      但是通过先序和后序是无法还原出原始的二叉树的
     
      换种说法:
      只有通过先序和中序或通过中序和后序,我们才可以唯一的确定一个二叉树
    树的应用:
      树是数据库中数据组织的一种重要形式
      操作系统子父进程的关系本身就是一棵树
      面向对象语言中类的继承关系本身就是一棵树
      赫夫曼树
     
     
     
  • 相关阅读:
    oracle聚合函数及行专列,pivot rollup cube
    oracle expdp导入时 提示“ORA-39002: 操作无效 ORA-39070: 无法打开日志文件 ”
    PL/SQL 美化器不能解析文本
    PL/SQL TOAD 不安装Oracle客户端连接数据库的方法
    oracle 某一字段取反
    jqgrid 加按钮列
    扩展方法 DataTable的ToList<T>
    jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding
    jquery ajax调用WCF,采用System.ServiceModel.WSHttpBinding协议
    学习WCF笔记之二
  • 原文地址:https://www.cnblogs.com/pig1314/p/8652957.html
Copyright © 2011-2022 走看看