用python写单链表


链表的数据结构

链表是什么呢,来看下

链表,是一种数据结构。相对于数组而言,是不连续的一块内存空间。不仅如此,而且链表有多种,包括:单链表,双向链表,循环链表。这里先说下单链表。


单链表

单链表,由data数据域和next指针组成。简单点,就如下代码:

class Node:
    def __init__(self, data: int, nextNode: None):
        self._data = data
        self._nextNode = nextNode

操作

先说插入吧,插入分为几种情况,头插入,尾插入,中间任意位置插入。

头插入

代码如下:
在这里插入图片描述

尾插入

这个也比较简单,如下图:
在这里插入图片描述

中间插入

这个就比较复杂了,中间某个Node插入,分为2中情况, 这个位置的前边还是后边呢?接下来看代码,如下图,前边插入:

在这里插入图片描述
还有一种情况是后边插入,如下图:
在这里插入图片描述
插入就结束了。插入简单,但是查找费时。


删除

来看下删除操作吧,删除的操作代码如下:
在这里插入图片描述
时间复杂度:O(n),这个主要浪费在查找上。

查找

代码如下:
在这里插入图片描述
时间复杂度O(n)

总结

总得来说,链表和数组相比,不是连续的内存空间,相对来说也复杂一点。插入操作和删除操作虽然比较效率高,但是时间耗费在查找上。查找的效率是O(n)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值