单链表尾指针示意图,链表的节点图解

首页 > 经验 > 作者:YD1662022-11-04 00:10:17

步骤:

  1. 查找结点并由指针指向该结点。

时间复杂度为

def insert(self, pos, elem): node = LNode(elem) count = 0 # p用来指向指定位置pos的前一个位置pos-1,初始从头节点开始移动到指定位置 p = self.__head while count < (pos-1): count = 1 p = p.next # 先将新节点node的next指向插入位置的节点 node.next = p.next # 将插入位置的前一个节点的next指向新节点 p.next = node

  1. 删除

要删除单链表中指定位置的元素,同插人元素一样,首先应该找到该位置的前驱结点。如图所示,在单链表中删除元素b时,应该首先找到其前驱结点a。为了在单链表中实现元素a、b和c之间逻辑关系的变化,仅需修改结点a中的指针域即可。假设p为指向结点a的指针,则修改指针的语句为

单链表尾指针示意图,链表的节点图解(5)

# 按值删除 def remove_1(self, elem): cur = self.__head pre = None while cur != None: if cur.elem == elem: # 先判断此结点是否是头节点 # 头节点 if cur == self.__head: self.__head = cur.next else: pre.next = cur.next break else: pre = cur cur = cur.next # 按位置删除 def remove_2(self,i): p = self.__head count = 0 while p != None: if count != i-1: p = p.next count = 1 else: p.next = p.next.next break

  1. 创建单链表

(1) 创建一个只有头结点的空链表。

(2) 根据待创建链表包括的元素个数, 循环次执行以下操作:

(1) 创建一个只有头结点的空链表。

(2) 尾指针 r 初始化,指向头结点。

(3) 根据创建链表包括的元素个数, 循环次执行以下操作:

单链表尾指针示意图,链表的节点图解(6)

# 头插法 def add(self, elem): # 先创建一个保存item值的节点 node = LNode(elem) # 将新节点的链接域next指向头节点,即__head指向的位置 node.next = self.__head # 将链表的头_head指向新节点 self.__head = node

# 尾插法 def append(self, elem): node = LNode(elem) # 先判断链表是否为空,若是空链表,则将_head指向新节点 if self.is_empty(): self.__head = node # 若不为空,则找到尾部,将尾节点的next指向新节点 else: p = self.__head while p.next != None: p = p.next p.next = node 顺序表与单链表的对比

单链表尾指针示意图,链表的节点图解(7)

作者:少年吉

来源:微信公众号: 数据科学CLUB

出处:https://mp.weixin.qq.com/s?__biz=MzUzODg0NDI4Mw==&mid=2247485723&idx=1&sn=75dd6e6cb8ca25f2fb5c3bf83c93a31c

,
上一页12末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.