Реализация единого связанного списка - PullRequest
0 голосов
/ 24 января 2020

Я натолкнулся на несколько учебных пособий, которые определяют класс узла без гораздо большего. Я хочу создать класс (очень похожий на тип данных собственного списка python), который может принимать переменное число параметров и рекурсивно генерировать экземпляры узлов в качестве поддерживающих атрибутов класса.

Из учебных пособий:

# Singly linked list
class Node():

    def __init__(self,value):

        self.value = value
        self.nextnode = None

a = Node(1)
b = Node(2)
c = Node(3)
a.nextnode = b
b.nextnode = c

Я не уверен, что наследование будет необходимо; Я думаю, что мне нужно было бы рекурсивно создавать объекты узлов для каждого элемента в значениях ниже. Но я уверен, как это реализовать.

class LinkedList():

    def __init__(self,*values):
        # insert code

Является ли то, что я спрашиваю, сверх того, что ожидается, когда «связанные списки» появляются в вопросах собеседования? Возможно, я просто запутался.

Редактировать: Я наткнулся на эту ссылку Как реализован список Python? и прочитал, что собственные списки python являются динамическими c массивами и, возможно, не так похожи на то, что я хотел бы, чем я думал ранее.

1 Ответ

0 голосов
/ 24 января 2020

См. эту статью . Перейдите к разделу «Круговой двусвязный список со стражем». В нем рассказывается, как автоматически генерировать узлы без явного их вызова, как в a,b,c = Node(1), Node(2), Node(3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...