2 Python链表
2021/9/23 22:40:44
本文主要是介绍2 Python链表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单链表类的定义
class Node(object): def __init__(self, data): self.data = data self.next = None
头插法添加元素
- 先生成新结点
遍历单链表
class Node(object): def __init__(self, data): self.data = data self.next = None class List(object): '''创建一个单链表类''' def __init__(self): '''初始化单链表''' self.__head = None # 表头,head为空 def is_empty(self): if self.__head: return 1 else: return 0 def add(self, item): '''头插法''' s = Node(item) # 生成新节点 s.next = self.__head self.__head = s def travel(self): '''遍历单恋表''' p = self.__head # 定义指针p,p从表头开始 while p != None: print(p.data, end='') p = p.next # 指针移动到下一元素
尾插法
- 先把指针移动到最后一个节点
- 创建一个节点
- 把新结点的地址放在最后一个节点的指针域里
指定位置插入元素insert(self, pos, x)
按值删除元素
单链表增删查改完整代码python
class Node(object): def __init__(self, data): self.data = data self.next = None class List(object): '''创建一个单链表类''' def __init__(self): '''初始化单链表''' self.__head = None # 表头,head为空 def is_empty(self): if self.__head: return 1 else: return 0 def add(self, item): '''头插法''' s = Node(item) # 生成新节点 s.next = self.__head self.__head = s def add(self, item): '''头插法''' s = Node(item) # 生成新节点 s.next = self.__head self.__head = s def add_end(self, x): '''尾插法''' s = Node(x) p = self.__head if self.__head == None: self.__head = s else: while p.next != None: p = p.next p.next = s def insert(self, pos, x): '''指定位置插入元素''' p = self.__head count = 0 if pos >= self.length(): return -1 while count < pos: p = p.next count += 1 s = Node(x) s.next = p.next p.next = s return 1 def remove(self, item): p = self.__head if p.data == item: self.__head = p.next else: while p!=None and p.data!=item: pre = p p = p.next pre.next = p.next def travel(self): '''遍历单恋表''' p = self.__head # 定义指针p,p从表头开始 while p != None: print(p.data, end=' ') p = p.next # 指针移动到下一元素 print('\n') def length(self): p = self.__head count = 0 while p != None: count +=1 p = p.next return count def search_pos(self, pos): '''按序号查找,pos是待查找的位置''' p = self.__head count = 1 # 计数器 if pos < 1: # 判断位置是否合法 return None else: while p != None and count != pos: p = p.next count += 1 return p # 成功返回节点p def search_value(self, value): '''search a item by value''' p = self.__head while p!=None and p.data!=value: p = p.next if p.data == value: return p elif p == None: return None
这篇关于2 Python链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南