简介

链表(linked list)是一种线性数据结构,最大的特点就是存储不连续,可以用于实现邻接表等。

链表分为单链表双向链表循环链表三种,如图所示: 单链表 双向链表 循环链表

可以看出,单链表中每个节点都有一个next指针,指向后一个节点,而最后一个节点的next为空指针;
双向链表的每个节点还有一个prev指针,指向前一个节点;
循环链表则是在上面的基础上让最后一个节点的next指向头节点,如果是双向循环链表还会让头节点的prev指针指向最后一个节点。

阅读全文 »

简介

堆(heap)是一种树型数据结构,具有以下特点:

  • 堆中某个节点的值总是不大于或不小于其父节点的值
  • 堆总是一棵完全二叉树

根节点最大的堆称为大根堆,相反则称之为小根堆
堆可以用于排序。

例如图中就是一个大根堆: 大根堆

阅读全文 »

前言

什么?\(1 + 1 = 2\)需要证明?这不是公理吗?(并非指哥德巴赫猜想)
可能很多人都是这样想的。也许在以前,\(1 + 1 = 2\)就是一个定义,是无法被证明的存在。但是现在,已经有了一套严密的数学系统,可以证明\(1 + 1 = 2\)

阅读全文 »
0%