链表浅谈
基础数据结构--链表 导语 常见链表结构 链表常见操作 导语 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的实现顺序是通过链表中的指针链接次序实现的。链表由一系列的节点(链表中每个元素成为节点)组成,节点可以在运行时动态生成。每个节点包括两部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址大的指针域。 常见链表结构 链表结构五花八门,常见的链表结构有:单链表、双向链表和循环链表。 单链表 单链表中两个结点比较特殊,分别是第一个结点和最后一个结点,我们习惯称第一个结点叫头结点把最后一个结点称尾结点,其中头结点用来记录链表的基地址,尾结点比较特殊指针不是指向下一个结点合适一个空地址NULL 循环链表 循环链表是一种特殊的单链表,尾结点指针指向头结点地址 双向链表 顾名思义双向链表支持两个方向,每个节点不止有一个后继指针next指向后边的结点,还有一个前驱指针prev指向前面的结点 双向链表的优点 在实际开发中,从链表中删除一个数据有两种情况: 1:删除结点中“值等于某个给定值”的结点 2:删除给定指针指向的结点 对于第一种情况不管是单链表还是双向链表,为了查找到值等于给定值的结点,都需要从头结点开始一个一个遍历对比,直到找到值等于给定值得结点。然后在通过指针操作将其删除。时间复杂度分析,时间消耗在遍历数值上面复杂度为O(n); 第二种情况