【单链表】

[b][size=large]本文围绕以下七个部分展开: [/size][/b]

[b][size=large]一、单链表[/size][/b]
[b][size=large]二、读取[/size][/b]
[b][size=large]三、插入[/size][/b]
[b][size=large]四、删除[/size][/b]
[b][size=large]五、整表创建[/size][/b]
[b][size=large]六、整表删除[/size][/b]
[b][size=large]七、单链表与顺序存储方式的比较[/size][/b]


[b][size=large]一、单链表[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3806/97ed6523-b9c0-304c-8e4c-0226a63976ec.png[/img][/align]


[b][size=large]二、读取[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3808/35d34a94-a34f-3c88-a4ec-aa6780664bed.png[/img][/align]

[img]http://dl2.iteye.com/upload/attachment/0111/3810/28336c57-1365-330c-be65-6d524fa1dd4d.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0111/3812/0aee0a4c-3c07-3d53-ab25-9bc120cd8b65.png[/img]

[size=medium]该算法主要核心思想:“工作指针后移”。该算法就是:从头开始找,直到第i个元素为止。最坏时间复杂度:O(n)。[/size]


[b][size=large]三、插入[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3814/0bc1759a-711d-3e47-8b07-77f5b9621cc3.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3816/51268c67-d02d-37ff-875c-645cb4dd182b.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3818/7ae62585-0308-3a3e-bab4-4f43eba7862d.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3820/26448c39-e4bc-321d-a993-300f0ef88035.png[/img][/align]


[b][size=large]四、删除[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3822/5c3ba0e4-1ac5-3263-bdef-73c1c917304a.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3824/39504ad2-7ef8-3eee-88fc-c0cbd5df3cde.png[/img][/align]

[img]http://dl2.iteye.com/upload/attachment/0111/3828/508b0812-aaf7-35f7-9190-53910856ace3.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0111/3826/15faed4a-4048-33b6-8a5f-29723c114f7d.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0111/3830/e6538dfc-ba61-3402-9cdf-3e8ca709508b.png[/img]

[size=medium]插入与删除算法均由两部分组成:[/size]

[size=medium](1)遍历查找第i个结点:时间复杂度:O(n)[/size]

[size=medium](2)插入和删除结点:时间复杂度:O(1)[/size]

[size=medium]故:对于插入或删除数据越频繁的操作,单链表的效率优势就越是明显。[/size]


[b][size=large]五、整表创建[/size][/b]

[size=medium]单链表的创建过程,是一个动态生成链表的过程。即:从“空表”的初始状态起,依次建立各元素结点,并逐个插入链表。[/size]

[size=medium][b]1. 头插法[/b][/size]

[size=medium]让新结点始终在第一的位置。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3832/8f8bd3d6-fbc4-3eef-a14c-6d3a9788518d.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3834/2c966358-e8e8-38fb-a25b-55962175f79d.png[/img][/align]

[img]http://dl2.iteye.com/upload/attachment/0111/3836/223ba4a7-359a-38f0-80ca-1fbf88f34dba.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0111/3838/807cca0d-0df4-32f9-9e15-0c4eb13dd5c4.png[/img]


[size=medium][b]2. 尾插法[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3840/426d3566-1020-35dc-a06a-20732bd3180d.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3842/640a579d-72df-39aa-b52b-52d09d0a41d8.png[/img][/align]

[img]http://dl2.iteye.com/upload/attachment/0111/3844/6a73476a-e140-3ee1-b41a-17f1c4685b40.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0111/3846/818aca3e-c37f-3adb-942c-a26a797ae0e5.png[/img]


[b][size=large]六、整表删除[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3848/3ba9f45e-e347-3431-987b-d4da4e7738e1.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3850/145250db-66bb-3174-a84d-7fcbf3a9f2d5.png[/img][/align]


[b][size=large]七、单链表与顺序存储方式的比较[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/3852/ac919dbc-9b0f-3c61-88a7-6fb3cf285c54.png[/img][/align]

[size=medium][b](1)[/b]当线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。[/size]
[size=medium]若需要频繁插入和删除时,宜采用单链表结构。[/size]

[size=medium][b](2)[/b]当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。[/size]
[size=medium]而若事先知道线性表的大致长度,用顺序存储结构,效率会高很多。[/size]


[size=large]整理时重点参考:[color=red]《大话数据结构》程杰著[/color][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值