内核数据结构
(1)数组及堆栈与队列进出方式
对于1维的有序数据结构,自然就想到如何从两端列表两端增、减元素,从而提出了堆栈进出列表方式(这里的“堆栈”是一个词,异于前篇:的堆(heap)与栈(stack)的概念,虽然字相同,但内涵不同)
对于数组、队列这种典型的1维有序结构,在增、减元素时,要么Last In First Out, LIFO (一般是数组采用) 要么就是First In First Out(之所以称为队列)
数组、队列的元素在内存地址上是连续的,对于中间段的元素删、增就效率较低。为了改善这个问题,就提出了链表,当然链表数据结构存储每个元素的附加信息(如:元素与元素的关联特征)就会增加。
(2)链表
单向链表:
双向链表:
循环链表:
(3)树
(4)哈希函数与哈希表(映射)
1)最简单的哈希表
每个元素存放的值=其下标,这句话也表达了hash_function,实际上应该称为“映射”
2)一般根据待存放数据集按照特征分类,如:0-n-1类,则哈希表的大小为n;
3)元素查找:首先根据哈希表的0-n-1类特征进行直接查找到分类,然后再去每个地址对应的链表查找具体的元素本身。