数据结构基础回顾

简介:主要分为两大类:线性结构和非线性结构,线性主要包括:数组、链表、栈、队列,非线性主要包括:集合、树、图

一、线性结构

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、无向图

猜你喜欢

转载自blog.csdn.net/wuqiqi1992/article/details/107614924