在我的DVL类中向python中的双链表添加一个范围函数

2024-04-29 17:12:44 发布

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

我目前正在研究python中的双链表,我遇到了以下问题:我想创建一个范围函数-range(start,stop,step)-它应该为我提供从位置start到位置stop的所有值。如果传递了一个值步骤,则应考虑这些步骤。 现在我只有双链表的基本知识,如果你能帮我的话,那就太好了。先谢谢你

class Node:
    def __init__(self, value):
        self.value = value
        self.next = None
        self.previous = None

class DVL:
    def __init__(self):
        self.first = None
        self.last = None


    def add(self, value):
        new_node = Node(value)

        if self.last == None:
            # add first node
            self.last = new_node
            self.first = new_node
        else:
            new_node.previous = self.last
            self.last.next = new_node
            self.last = new_node

    def print_forward(self): 
        node = self.first
        while(node is not None): 
            print(node.value) 
            node = node.next

Tags: selfnonenodenewvaluedef步骤start
1条回答
网友
1楼 · 发布于 2024-04-29 17:12:44

我没有测试过这个,但是你可以按照同样的思路思考

我假设start < endstep >= 1。可以修改通用range函数的代码

def _skip_n(self, node, n):
    count = 0
    while count <= n:
        node = node.next
        count += 1

    return node

def range(self, start, end, step):  # assumes end is less than or equal to length of the list
    res = []
    node = self.first
    for i in range(start, end, step):
        res.append(node.value)
        node = self._skip_n(node, step)

    return res

相关问题 更多 >