/ blog/ posts/ 11

# 排序之选择排序

2 min read

选择排序就是构建有序序列,对于未排序的下一个位置,在未排序序列中从前往后扫描,选择合适的元素。

# 排序之插入排序

2 min read

插入排序就是构建有序序列,对于未排序的下一个数据,在已排序序列中从后往前扫描,找到合适的位置插入。

# 排序之冒泡排序

3 min read

冒泡排序就是将数列中第一个关键字和第二个关键字比较,若为逆序,则交换两个关键字,继续比较第二个,第三个关键字,重复直到最后一个。这样子,数列中最大值就位于最后的位置。然后开始第二轮比较,直到 N-1 的位置。一直循环比较 N 轮,直到数列中所有的记录都排序好。冒泡排序总是从左往右遍历,并选择最大的关键字放在最左边。

# 三种表达式

6 min read

前缀表达式,也叫波兰表达式(PN)。其特点是操作符置于操作数的前面。中缀表达式,操作符是以中缀的形式处于操作数的中间。中缀表达式中的括号是必需的。后缀表达式,也叫逆波兰表达式(RPN)。所有的操作符置于操作数的后面。

# 数据结构之图

8 min read

图是一种非线性结构,是一组有限个顶点(vertices)和一组连接顶点的边(edges)的集合。

# 数据结构之树

4 min read

在计算机科学中,树是一种抽象数据结构(abstract data type)(ADT)或者是根据这种抽象数据结构(ADT)实现的数据结构。

# 数据结构之串

5 min read

串/字符串(String)是一种特殊的线性表,其数据元素为字符。串是仅由字符串构成的有限序列,是取值范围受限的线性表。一般记作S=‘a<sub>1</sub>a<sub>2</sub>···a<sub>n</sub>’,其中S是串名,单引号括起来的字符序列是串值。

# 数据结构之队列

3 min read

队列,是一个特殊的线性表。它有两个位置,头部 front 和末端 end。在队列的末端进行插入元素,称为enqueue。在队列的头部进行删除元素,称为dequeue。

# 数据结构之栈

4 min read

栈是一个抽象的线性数据结构,遵循后进先出 LIFO(Last In First Out)的原则,也就是说只能通过一端来实现数据存储和检索。在栈中进行插入和删除操作的一端称为栈顶(top),另一端称为栈底(bottom)。

# 数据结构之双向链表

4 min read

双向链表(双链表),每个结点包含两个指针,分别指向当前结点的直接前驱 prev 和直接后继 next。所以,可以从表中的任意结点出发,访问它的前驱结点和后继结点。头结点的前驱和尾结点的后继分别指向 NULL。

# 数据结构之单链表

5 min read

链表是线性表里常见的数据结构,不需要连续存储到内存中。每一个结点都包括了存储数据的结点 data 以及指向下一个结点的指针 next。

# 数据结构之数组

5 min read

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。