# 数据结构与算法笔记

**URL:** <https://www.shiqidu.com/t/topic/579>\
**Category:** 开发调优\
**Tags:** 数据结构和算法\
**Created:** [2019 年4 月 12 日 15:51 UTC](https://www.shiqidu.com/t/topic/579 "2019-04-12T15:51:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![yeqiu](https://www.shiqidu.com/user_avatar/www.shiqidu.com/yeqiu/32/14_2.png) [@yeqiu](https://www.shiqidu.com/u/yeqiu)\
发布日期： [2019 年4 月 12 日 15:51 UTC](https://www.shiqidu.com/t/topic/579/1 "2019-04-12T15:51:59Z")

</div>

数据结构分类

- 线性表，可细分为顺序表、链表、栈、队列
- 树结构，包括普通树、二叉树、线索二叉树
- 图

### 线性表

#### 顺序表

类似于数组，存储空间的屋里地址是连续的，逐渐增大。

![顺序表](https://discourse.shiqidu.com/upload/discussion/20190412/9df0878a2338c5191d26348ccaf1f070_origin.png)

#### 链表

数据的存储位置是随机的，链表给各数据块增设一个指针，每个数据块的指针都指向下一个数据块（最后一个数据块的指针指向 NULL）

![链表](https://discourse.shiqidu.com/upload/discussion/20190412/3e26cd6d80b2bb2d384be1d38377150b_origin.png)

#### 栈和队列

栈和队列隶属于线性表，是特殊的线性表，因为它们对线性表中元素的进出做了明确的要求。

**栈** 中的元素要遵循“ **先入后出** ”原则，即先进栈的元素后出栈。

![栈](https://discourse.shiqidu.com/upload/discussion/20190412/74263330fec545f000f7a138d29de100_origin.png)
