|
发表于 2021-8-4 21:50:56
|
显示全部楼层
再看python写的单链表
简直就是天书
我认为是 你看的那个代码 写的不好
我用 python 写了一个,也作为自己练习了,毕竟还没有用 python 写过这个
有兴趣的话,你可以看看
list.py
- #!/usr/bin/env python
- #coding=utf-8
- class list_node_t():
- def __init__(self, data, next = None):
- self.m_data = data
- self.m_next = next
- class list_t():
- def __init__(self):
- self.m_head = None
- self.m_size = 0
- def size(self):
- return self.m_size
- def empty(self):
- return self.m_size == 0
- def insert(self, data, index = 0):
- if index > self.size(): return False
- node = list_node_t(data)
- if index == 0:
- node.m_next = self.m_head
- self.m_head = node
- else:
- p = self.m_head
- for _ in range(index - 1): p = p.m_next
- node.m_next = p.m_next
- p.m_next = node
- self.m_size += 1
- return True
- def get(self, index):
- if self.empty(): return None
- if index >= self.size(): return None
- p = self.m_head
- for _ in range(index): p = p.m_next
- return p.m_data
- def remove(self, index):
- if self.empty(): return False
- if index >= self.size(): return False
- if index == 0:
- temp = self.m_head
- self.m_head = temp.m_next
- del temp
- else:
- p = self.m_head
- for _ in range(index - 1): p = p.m_next
- temp = p.m_next
- p.m_next = temp.m_next
- del temp
- self.m_size -= 1
- return True
- def append(self, data):
- self.insert(data, self.size())
复制代码
main.py
- #!/usr/bin/env python
- #coding=utf-8
- import list
- l = list.list_t()
- for i in range(10): l.append(i)
- for i in range(l.size()): print(i, l.get(i))
- l.insert(123, 3)
- for i in range(l.size()): print(i, l.get(i))
- l.insert(456, 1)
- for i in range(l.size()): print(i, l.get(i))
- l.remove(4)
- for i in range(l.size()): print(i, l.get(i))
复制代码 |
|