Unverified Commit ec0424d7 authored by Margatroid's avatar Margatroid Committed by GitHub
Browse files

fix(ds): update index.md (#1823)

fix(ds): update index.md
parents 248f0bda ec93eceb
Loading
Loading
Loading
Loading
+2 −103
Original line number Diff line number Diff line
author: HeRaNO, Zhoier, hsfzLZH1

## 数据结构
数据结构是在计算机中存储、组织数据的方式。小到变量、数组,大到线段树、平衡树,都是数据结构

-   Q:什么是数据结构?

-   A:简单地讲,数据结构就是数据的储存方式。

-   Q:数据结构有什么用呢?

-   A:对于给定的数据,通过使用不同的数据结构储存,可以获得不同的效果。例如,数组便于快速访问某一特定位置的值,但会在插入、删除操作中浪费大量时间;链表则便于插入、删除单个元素,但用于访问特定位置的效率却不容乐观。线段树,平衡树则可以加速对于特定信息的检索与维护,如区间和,排名等。灵活地使用数据结构可以对代码的运行效率产生不可忽视的影响。

-   Q:在算法竞赛中,数据结构有那些考察点呢?

-   A:算法竞赛中,数据结构的考察主要分为两类:

    ​	1. 考察对于特定信息的检索与维护和对特定操作的支持,例如 [「SCOI2010」序列操作](https://www.luogu.org/problem/P2572) 

    ​	2. 使用合适数据结构加速信息检索,优化算法复杂度,例如 [「APIO2012」派遣](https://www.luogu.org/problem/P1552) 

-   Q:有没有一种完美的数据结构可以搞定所有事情啊?

-   A:很遗憾地告知您: **并没有,所以要努力学习下面的内容呢!** 


-   [x] STL

    -   [x] STL 简介

    -   [x] vector

    -   [x] priority_queue

    -   [x] map

    -   [x] bitset

-   [x] pb_ds

    -   [x] pb_ds 简介

    -   [x] \_\_gnu_pbds::priority_queue

-   [x] 栈

-   [x] 队列

-   [x] 链表

-   [x] 哈希表

-   [x] 并查集

-   [x] 堆

    -   [x] 堆简介

    -   [x] 二叉堆

    -   [x] 配对堆

    -   [x] 左偏树

-   [x] 块状数据结构

    -   [x] 分块思想

    -   [x] 块状链表

    -   [x] 块状数组

    -   [x] 树分块

-   [x] 单调栈

-   [x] 单调队列

-   [x] ST 表

-   [x] 树状数组

-   [x] 线段树

-   [x] 线段树 & 区间历史最值

-   [x] 划分树

-   [x] 平衡树

-   [x] 树套树

-   [x] K-Dtree

-   [x] 可持久化数据结构

-   [x] 珂朵莉树

-   [x] 动态树

    -   [x] Link Cut Tree

    -   [x] Euler Tour Tree

    -   [x] Top Tree

-   [x] 析合树
程序运行离不开数据结构,不同的数据结构又各有优劣,能够处理的问题各不相同,而根据具体问题选取合适的数据结构,可以大大提升程序的效率。所以,学习各种各样的数据结构是很有必要的。