链表
简介
链表(linked list)是一种线性数据结构,最大的特点就是存储不连续,可以用于实现邻接表等。
链表分为单链表、双向链表和循环链表三种,如图所示:

可以看出,单链表中每个节点都有一个next指针,指向后一个节点,而最后一个节点的next为空指针;
双向链表的每个节点还有一个prev指针,指向前一个节点;
循环链表则是在上面的基础上让最后一个节点的next指向头节点,如果是双向循环链表还会让头节点的prev指针指向最后一个节点。
链表(linked list)是一种线性数据结构,最大的特点就是存储不连续,可以用于实现邻接表等。
链表分为单链表、双向链表和循环链表三种,如图所示:

可以看出,单链表中每个节点都有一个next指针,指向后一个节点,而最后一个节点的next为空指针;
双向链表的每个节点还有一个prev指针,指向前一个节点;
循环链表则是在上面的基础上让最后一个节点的next指向头节点,如果是双向循环链表还会让头节点的prev指针指向最后一个节点。
堆(heap)是一种树型数据结构,具有以下特点:
根节点最大的堆称为大根堆,相反则称之为小根堆。
堆可以用于排序。
例如图中就是一个大根堆: 
什么?\(1 + 1 =
2\)需要证明?这不是公理吗?(并非指哥德巴赫猜想)
可能很多人都是这样想的。也许在以前,\(1 + 1 =
2\)就是一个定义,是无法被证明的存在。但是现在,已经有了一套严密的数学系统,可以证明\(1 + 1 = 2\)。