链表
对于我这种非程序员出生的人,尤其是从C#入门的人,压根不知道链表是啥,所以现在恶补。
链表:是一种线性数据结构,每一个元素存储了数据本身以外,还存储了另一个元素的指针。
与数组对比:
优点:数组需要预先确定数组大小,而链表不需要
缺点:由于元素需要额外存储其他元素的指针,需要更多空间域
链表分为单向链表、双向链表和循环链表
单向链表:每个元素存储下一个元素的指针
双向链表:在单向的基础上还存储上一个元素的指针。在单向链表中,假设原来A元素上存储了B元素的指针,可以从A找到B,但是不能从B找到A,因为B元素上没有存储A元素的指针。所以在B元素上存储A元素的指针的链表叫做双向链表。
循环链表:链表的末元素的指针的下一个元素的指针指向该链表的首元素。需要额外存储首末两个元素,以必要时作判断。
在循环链表中,虽然B元素没有存储A元素的指针,但是仍然可以找到A元素,这就是循环链表的优势。
通俗理解,不足望指出。