常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树


链表

链表:linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。

每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

我们常说的链表结构有单向链表与双向链表,那么这里给大家介绍的是单向链表

常见的数据结构——栈、队列、数组、链表和红黑树

简单的说,采用该结构的集合,对元素的存取有如下的特点:

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树

常见的数据结构——栈、队列、数组、链表和红黑树



红黑树

  • 二叉树binary tree ,是每个结点不超过2的有序树(tree)

简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。

二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”。

常见的数据结构——栈、队列、数组、链表和红黑树

我们要说的是二叉树的一种比较有意思的叫做红黑树红黑树本身就是一颗二叉查找树,将节点插入后,该树仍然是一颗二叉查找树。也就意味着,树的键值仍然是有序的

红黑树的约束:

  1. 节点可以是红色的或者黑色的

  1. 根节点是黑色的

  1. 叶子节点(特指空节点)是黑色的

  2. 每个红色节点的子节点都是黑色的

  3. 任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同

红黑树的特点:

​ 速度特别快,趋*衡树,查找叶子元素最少和最多次数不多于二倍

 

常见的数据结构——栈、队列、数组、链表和红黑树