1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 复制链表 内容: 除了有 本身的数据外,还有 一个指针 首先记忆一个 head, 第一个元素的位置 譬如找第3个元素: 先通过head,找到一个元素,通过元素中的指针,定位下一个元素 找到第二个元素,继续通过第二个元素的指针,定位到下一个元素 譬如: 元素1 ,地址:地址1,内容:('内容1', '地址2') 元素2 地址:地址2 ,内容:('内容2', '地址3') 元素3 地址:地址3 ,内容:('内容2', 'None') 新增一个元素4,地址是:地址4:插入到上限的元素1和元素2之间: 元素1 ,地址:地址1,内容:('内容1', '地址4') 元素4 ,地址:地址4,内容:('内容4', '地址2') 元素2 地址:地址2 ,内容:('内容2', '地址3') 元素3 地址:地址3 ,内容:('内容2', 'None') 读取:慢,因为需要通过链接的方式,一个个查询 写入:较快,只需要改写上一个元素的 指针,并且新增元素本身,并且将元素本身的指针指向 下一个元素 删除:把自身删除后,需要把上一个元素的 指针,指向被删除元素指向的元素 双向链表: 在上述的单向链表中,多一个指针,指向上一个 元素 循环链表: 最后一个元素指向第一个元素,形成循环, 循环链表是没有head的,所以必须人为指定一个 元素 为head
|