【问题标题】:A doubly linked list with index pointer?带有索引指针的双向链表?
【发布时间】: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

【问题讨论】:

标签: python data-structures doubly-linked-list


【解决方案1】:

它是一个常规的doubly linked list 数据结构,因此指向下一个和上一个节点将通过索引完成。因此,它看起来像the following(除非您需要将元素的索引视为指向该元素的指针):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多