一、链表--逻辑上连续、空间上不连续

1、单链表

     由数据域和next指针构成,next指针指向下一个链表结点

2、双链表

    由数据域、前驱结点和后继结点构成,访问一个结点后既可以向前依次访问,也可以向后依次访问

二、数组--逻辑和空间上都连续

1、一维数组

2、二维数据

     元素为一维数组的一维数组

    特点:每行的列数可以不一样,因为存储的每个一维数组长度不固定

三、栈和队列

1、栈--桶状(封底)

     先入后出

2、队列--管状(双通)

    先入先出

四、树

1、度

    结点的度=该结点的分支数(孩子数)

    树的结点数=所有结点度+1

    度为m的树--每个结点最多右m个孩子

2、二叉树--每个结点最多只有两个孩子

(1)满二叉树:所有结点的度都为2

(2)完全二叉树:从上到下,从左到右连续排列(根左右)

(3)线索二叉树:有孩子无线索,无孩子有线索

                               左空--前驱线索

                               右空---后继线索

(4)二叉排序树:按大小顺序,左根右

(5)平衡二叉树:|每个结点左孩子高度-右孩子高度|<=1

  (6) B树:度为m的树;是排序树,左<根<右;所有结点既存数据又存关系

                 叶子节点不带信息,可看作另加的外部节点或查找失败的节点

(7)B+树:所有数据均存在叶子结点,非叶子结点都存的关系

                    叶子节点都在同一层,每个叶子节点都前后连接

(8)红黑树:平衡二叉排序树

                      根结点是黑的;基本是一层红的一层黑的,但每层的null结点一定是黑

                      即,除叶子结点外,父子不同色

(9)哈夫曼树:WPL最小的二叉树

          WPL=路径长度*权值

数据结构--B树、B+树、红黑树区别_@snow'的博客-CSDN博客

五、图

1、这是一种非单一关系的较为复杂的数据结构

2、图相关的算法

 (1)最小生成树

  •   普里算法:选点法,选域顶点连边权值最小的值
  •   克鲁斯卡尔算法:选边法,选边权值并排序,依次连边

(2)最短路径

  •    迪杰斯特拉算法:选直达的两端点最小值,画带权邻接矩阵,两点直达填权值,非直达无穷号表示
  •   弗洛伊德算法:也通过权邻接矩阵方式
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐