简介:主要分为两大类:线性结构和非线性结构,线性主要包括:数组、链表、栈、队列,非线性主要包括:集合、树、图
一、线性结构
1、线性表
(1)数组
数组的存储区间是连续的,就是相同数据类型的元素按一定顺序排列的集合。
优点:存储密度大、空间利用率高,因为存储是有规律连续存储,所有查找快,但增删操作要移动后面整个数组,所以增删慢
(2)链表
链表存储时随机空间,通过指针寻址,查找时顺序查找,查找慢,增删时修改指针指向,增删快
(2.1) 单向链表
(2.2) 双向链表
(2.3)循环链表
(2.4)跳跃链表
(2.5)自组织链表
(2.6)稀疏表
(3)广义线性表
(3.1)多维数组
(3.2)广义表
转载:https://blog.csdn.net/qq_24429333/article/details/86616810
2、栈
先进后出
3、队列
先进先出
二、树
1、二叉树
(1)二叉查找树(BST)
为查找而生,理想状态树如果平衡,查找速度会比普通顺序查找要快很多,但极端情况树如果过于不平衡,查找就和顺序查找没区别了,这是缺点。
(2)平衡二叉树(AVL)
为了解决二叉查找树树不平衡导致查找效率变低,经过旋转生成新的平衡二叉树。但由于每次增加和删除需要旋转操作树,使树变成平衡状态,导致增删效率过低。
(3)红黑二叉树(RBT)
为了解决平衡二叉树增删旋转操作,导致增删效率过低,引入红黑二叉树,是一种黑平衡二叉树,不是真正平衡二叉树,所以查找效率会比平衡二叉树低,但由于其特性,增删旋转次数都比较小,使得增删效率显著提高。
2、多叉树
(1)B-树
(2)B+树
(3)B*树
3、森林(多棵树)
转载: https://blog.csdn.net/z702143700/article/details/49079107
三、图
1、有向图
2、无向图