python自定义linkedlist是否在每个节点中都包含它们的所有属性?

2024-04-26 06:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将Python voronoi diagram generator翻译成Java。但是,我很难理解Arc类是如何工作的

我以前在Java中实现过链表,但是这里的实现似乎与我习惯的非常不同。我不完全确定它是一个链表,它只是因为它的类是后来使用的方式

这里的Arc类是否在每个节点中携带所有属性

弧类:

class Arc:
    p = None     
    pprev = None 
    pnext = None 
    e = None
    s0 = None
    s1 = None

    def __init__(self, p, a=None, b=None):
        self.p = p
        self.pprev = a
        self.pnext = b
        self.e = None
        self.s0 = None
        self.s1 = None

使用的Arc类示例:

def process_event(self):
    # get next event from circle pq
    e = self.event.pop()

    if e.valid:
        # start new edge
        s = Segment(e.p)
        self.output.append(s)

        # remove associated arc (parabola)
        a = e.a  # <-- a is an "Arc" type
        if a.pprev is not None:
            a.pprev.pnext = a.pnext
            a.pprev.s1 = s
        if a.pnext is not None:
            a.pnext.pprev = a.pprev
            a.pnext.s0 = s

        # finish the edges before and after a
        if a.s0 is not None: a.s0.finish(e.p)
        if a.s1 is not None: a.s1.finish(e.p)

        # recheck circle events on either side of p
        if a.pprev is not None: self.check_circle_event(a.pprev, e.x)
        if a.pnext is not None: self.check_circle_event(a.pnext, e.x)

Tags: selfnoneeventifisnotjava链表
1条回答
网友
1楼 · 发布于 2024-04-26 06:50:52

在你的问题中可能有一个轻微的命名混乱,但只要我理解正确,举个例子,简短的回答是:是的

假设node是指Arc类型对象的每个实例,如第一个代码片段中构造的,所有属性都绑定到一个实例(至少在这段代码中是这样),将它们定义为上面的类属性似乎没有任何特定的用途或意义

相关问题 更多 >