数据结构是计算机储存、组织数据的方式。

数据结构是指互相之间存在一种或多种特定关系的数据元素的集合。通常情况下，精心选择的数据结构可以带来更高的运行或者储存效率。数据结构往往同高层次的检索算法和索引技术有关。

对于算法竞赛，由于不能携带资料（如 NOIP、IOI 等），现场编写复杂的数据结构是一种很大的挑战。

数据结构有很多种，如栈、队列、并查集等，更高级的则会出现树、块、链等复杂的数据结构，这些在算法竞赛中出现的数据结构重点在于如何应用，而不是熟记模板代码，所以透彻地掌握数据结构的处理过程才是最重要的。

另外一个重要的点是，在算法竞赛中，往往是先思考需要一个怎样的数据结构，再考虑去如何实现（或者用已有的）。通俗地说，这个与实现无关的数据结构成为抽象数据类型（Abstract Data Type，ADT），它描述的是数据结构的外部特征，及使用方法。
