【发布时间】:2020-11-30 11:00:03
【问题描述】:
doubly linked list with index pointer这是我们在课堂上所说的,但我在互联网上没有找到类似的东西,这是示例代码,但我不明白它的工作方式,如果你能给我一个视觉效果以这种方式创建的链表,那会很棒
这是代码(以防您无法打开图片):
class CursorList:
def __init__(self,max=100):
self.max=max
self.next=[None]*self.max
self.element=[None]*self.max
self.prev=[None]*self.max
self.avail=0
self.head=None
self.size=0
for i in range (self.max-1):
self.next[i]=i+1
def allocate(self):
if self.avail is None:
raise Exception('out of space')
x=self.avail
self.avail=self.next[self.avail]
return x
def free(self,x):
self.next[x]=self.avail
self.avail=x
def is_empty(self):
return self.size==0
def insert_first(self,e):
index=self.allocate()
self.next[index]=self.head
self.element[index]=e
self.prev[index]=None
if not self.is_empty():
self.prev[self.head]=index
self.head=index
self.size+=1
def delete_first(self):
if self.is_empty():
raise Exception('List is empty')
index=self.head
e=self.element[index]
self.head=self.next[self.head]
self.size-=1
self.free(index)
return e
【问题讨论】:
-
请将代码发布为文本(格式化)。另请参阅Why not upload images of code/errors when asking a question?。
标签: python data-structures doubly-linked-list