数据结构

来源:互联网 发布:风险矩阵法的作用 编辑:程序博客网 时间:2024/06/15 14:22

数据结构

链表

链表

是一种由节点组成的线性数据集合,每个节点通过指针指向下一个节点。由节点组成,并能用于表示序列的数据结构。

单链表:每个节点仅指向下一个节点,最后一个节点指向空。

双链表:每个节点有两个指针p,nP指向前一个节点,n指向下一个节点,最后一个节点n指向空。

循环链表:每个节点指向下个节点,最后一个节点指向头结点。

时间复杂度:

排序:

类别

排序方法

平均时间复杂度

稳定性

插入

排序

直接插入

O(N2)

稳定

希尔排序

O(N1.3)

不稳定

选择

排序

直接选择

O(N2)

不稳定

堆排序

O(N*log2N)

不稳定

交换

排序

冒泡排序

O(N2)

稳定

快速排序

O(N*log2N)

不稳定

归并排序

O(N*log2N)

稳定

基数排序

O(d(r+n))

稳定

队列:

一个元素集合,支持两种基本操作:enqueue用于添加一个 元素到队列,dequeue用于删除队列中的一个元素。

特点:先进先出

栈:

一个元素集合,支持两个基本操作:push用于将元素压入栈,pop用于删除栈顶元素。

特点:先进后出

树是无向,联通的无环图。

二叉树

二叉树是一个树形数据结构,每个节点最多有两个子节点,成为左节点,右节点。

满二叉树:二叉树中的每个节点都有0个或者2个节点。

完美二叉树:二叉树的每到个节点都有两个子节点,并且每个叶子节点

完全二叉树:二叉树中除了最后一层其他层的节点树均达到最大值,最后一层的子节点全部连续集中在左侧。

堆是一种基于树的满足某些特征的数据结构:整个堆中的所有父子节点的键值都满足相同的排序条件。

堆分最大堆和最小堆。

最大堆中,父节点的键值永远大于大于等于多有子节点的键值。