# 数据结构之树
4 min read
在计算机科学中,树是一种抽象数据结构(abstract data type)(ADT)或者是根据这种抽象数据结构(ADT)实现的数据结构。
在计算机科学中,树是一种抽象数据结构(abstract data type)(ADT)或者是根据这种抽象数据结构(ADT)实现的数据结构。
串/字符串(String)是一种特殊的线性表,其数据元素为字符。串是仅由字符串构成的有限序列,是取值范围受限的线性表。一般记作S=‘a<sub>1</sub>a<sub>2</sub>···a<sub>n</sub>’,其中S是串名,单引号括起来的字符序列是串值。
队列,是一个特殊的线性表。它有两个位置,头部 front 和末端 end。在队列的末端进行插入元素,称为enqueue。在队列的头部进行删除元素,称为dequeue。
栈是一个抽象的线性数据结构,遵循后进先出 LIFO(Last In First Out)的原则,也就是说只能通过一端来实现数据存储和检索。在栈中进行插入和删除操作的一端称为栈顶(top),另一端称为栈底(bottom)。
双向链表(双链表),每个结点包含两个指针,分别指向当前结点的直接前驱 prev 和直接后继 next。所以,可以从表中的任意结点出发,访问它的前驱结点和后继结点。头结点的前驱和尾结点的后继分别指向 NULL。
链表是线性表里常见的数据结构,不需要连续存储到内存中。每一个结点都包括了存储数据的结点 data 以及指向下一个结点的指针 next。
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
线性表(Linear List)是一种线性结构。线性表是由 n(n ≥ 0)个数据元素的有限序列。
从广义上讲,数据结构就是一组数据的存储结构,算法就是操作数据的一组方法。数据结构是为算法服务的,算法要作用在特定的数据结构之上。