最近看了y总的算法基础课数据结构,于是一时兴起,准备将算法基础课里数据结构全部用python实现一遍,自用笔记,尽可能的写的浅显易懂(指我奶奶都能看得懂)
更新于2023年11月15号
y总生日快乐!
单链表
class Node: # 单链表
def __init__(self,data): # 初始化节点
self.val = data
self.next = None
def insert_head(head,x): # 插入头节点
x = Node(x) # 创建一个x,这个x是链表待插入的值
x.next = head # 让x指向头节点 x->head
head = x # 把头节点的值变为x
return head # 返回头节点的值
def insert_k(head,k,x): #在第k个数后面插入
x = Node(x) # 创建一个x,这个x是链表待插入的值
current = head # 初始化当前地址为head
for _ in range(k): # 当head还没有移动到k的位置时候,当前值指向下一个值
current = current.next
x.next = current.next # 让x指向k的下一个值
current.next = x # 当前值指向x
return head #返回头节点(整个链表)
def print_list(head): # 从节点开始打印
current = head # 当前地址初始化为头节点
while current: # 当当前地址不指向空的时候
print(current.val,end = '->') # 打印当前地址的值,用 -> 连接
current = current.next
print(None)
# 来举个例子吧
head = Node(1)
head.next = Node(5)
head = insert_head(head,3)
head = insert_head(head,7)
print_list(head) # 7->3->1->5
insert_k(head,1,2) #7->3->2->1->5
insert_k(head,3,10) #在1后面插入10 7->3->2->1->10->5
print_list(head)
y总生日快乐