单链表实现code
##############################简要#################################
| 序号 | 方法 | 描述 |
|---|---|---|
| 0 | ll = LinkList(seq) | 创建一个单链表对象 |
| 1 | LinkList.size_() | 链表中当前元素的个数 |
| 2 | LinkList.is_empty() | 判断链表是否为空 |
| 3 | LinkList.clear() | 将链表清空 |
| 4 | LinkList.append(obj) | 在链表末尾添加一个新的对象 |
| 5 | LinkList.count(obj) | 统计某个元素在链表中出现的次数 |
| 6 | LinkList.extend(seq) | 在链表末尾一次性追加另一个序列中的多个值(用新链表扩展原来的链表) |
| 7 | LinkList.index(obj) | 从链表中找出某个值第一个匹配项的索引位置 |
| 8 | LinkList.insert(index,obj) | 将对象插入到链表中指定位置 |
| 9 | LinkList.pop([index=-1]) | 移除链表中的一个元素(默认最后一个元素),并且返回该元素的值 |
| 10 | LinkList.remove(obj) | 移除链表中某个值的第一个匹配项 |
| 11 | LinkList.reverse() | 反向链表中所有的元素 |
| 12 | LinkList.sort([reverse=False]) | 对原链表进行排序,默认升序 |
| 13 | LinkList.__len__() | 返回当前链表中元素的个数,在调用len方法时触发 |
| 14 | LinkList.__str__() | 直接打印对象时调用,也即在调用str方法时触发 |
| 15 | LinkList.__iter__() | 实现链表对象的可迭代,比如for循环,list() |
| 16 | LinkList.__add__() | 两个对象进行+操作调用,self对象自身不发生改变 |
| 17 | LinkList.__mul__() | 进行*重复操作,self对象自身不发生改变,类似[1, 2]*3 |
- 生成链表对象
list1 = LinkList([])
list2 = LinkList([1, 3, 2])
list3 = LinkList(LinkList([1, 2]))
print(list1, list2, list3, sep="\n")

- 对象当前元素个数
print(list1.size_(), list2.size_(), list3.size_())

- 链表是否为空
print(list1.is_empty(), list2.is_empty(), list3.is_empty())

- 链表清空
print("list2: "+str(list2))
list2.clear()
print(list2.is_empty())

- 末尾添加一个新的对象
print("before: " + str(list2))
list2.append(10)
print("after: " + str(list2))

- 指定元素在链表中出现的次数
print("list2: " + str(list2))
print("%d的个数:%d, %d的个数: %d" % (2, list2.count(2), 3, list2.count(3)))

- 扩展原来的链表
print("list2: " + str(list2), "size: " + str(list2.size_()))
list2.extend([10, 20])
print("list2: " + str(list2), "size: " + str(list2.size_()))

- 索引位置
print("list2: " + str(list2), "index of 3: " + str(list2.index(3)))

- 插入到链表中指定位置新元素
print("before: " + str(list2))
list2.insert(-2, 1111)
print("after: " + str(list2))

- 移除链表中索引位置的一个元素
print("before: " + str(list2))
list2.pop(-3)
print("after: " + str(list2))

- 移除链表中某个值的第一个匹配项
print("before: " + str(list2))
list2.remove(3)
print("after: " + str(list2))

- 反向链表中所有的元素
print("before: " + str(list2))
list2.reverse()
print("after: " + str(list2))

- 原链表进行排序
print("before: " + str(list2))
list2.sort()
print("after: " + str(list2))

- 链表元素个数
print(list2, "size: " + str(len(list2)))

- 打印对象
print(list2, str(list2), sep="\n")

- 链表对象可迭代
print(list(list2))
for data in list2:
print(data, end=" ")
print()

- 两个对象进行+连接操作
print(list2, list3)
print(list2 + list3)

- 重复操作
print(list2, "size: " + str(len(list2)))
print(list2*3, "size: " + str(len(list2)))

本文介绍了一个单链表类的实现及其方法,包括创建、查询、修改等操作,并通过实例演示了如何使用这些方法来管理链表数据。

1140

被折叠的 条评论
为什么被折叠?



