def Insert(self, i, e): #在线性表中序号i位置插入元素e assert i>=0 #检测参数i正确性的断言 s=LinkNode(e) #建立新结点s if (i==0): #插入作为首结点 s.next=self.head.next self.head.next=s else: p=self.geti(i-1) #找到序号为i-1的结点p assert p!=self.head #p不为头结点的检测 s.next=p.next #在p结点后面插入s结点 p.next=s def Delete(self,i): #在线性表中删除序号i位置的元素 def display(self): #输出线性表 p=self.head.next #首先p指向首结点 while p!=self.head: print(p.data,end=' ') p=p.next print()
时间: 2024-01-19 19:03:16 浏览: 68
根据代码片段,发现 `Insert`、`Delete` 和 `display` 函数的缩进不正确,应该是类方法,需要正确缩进。同时,`display` 函数定义和 `Insert` 函数定义之间应该有一个空行。
下面是补齐后的代码:
```
class LinkNode:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkList:
def __init__(self):
self.head = LinkNode()
def geti(self, i):
p = self.head.next
j = 0
while p and j < i:
p = p.next
j += 1
return p
def Insert(self, i, e):
# 在线性表中序号i位置插入元素e
assert i >= 0 # 检测参数i正确性的断言
s = LinkNode(e) # 建立新结点s
if i == 0: # 插入作为首结点
s.next = self.head.next
self.head.next = s
else:
p = self.geti(i - 1) # 找到序号为i-1的结点p
assert p != self.head # p不为头结点的检测
s.next = p.next # 在p结点后面插入s结点
p.next = s
def Delete(self, i):
# 在线性表中删除序号i位置的元素
p = self.geti(i - 1)
assert p.next != None
e = p.next.data
p.next = p.next.next
return e
def display(self):
# 输出线性表
p = self.head.next # 首先p指向首结点
while p != self.head:
print(p.data, end=' ')
p = p.next
print()
```
阅读全文