Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 15, 2014 07:55:46

Renfri
Зарегистрирован: 2014-11-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранение узлов связного списка в файл и его чтение

Здравствуйте. Выполняю задание по созданию связного списка и меня возникло пару проблем:
1. Как сохранить узлы списка в файл (в байтовой форме) и реализовать чтение этого файла? (без первого узла, который None)
2. Как переделать этот список из двусвязного циклического в односвязный?

class Node:
    def __init__(self, name, year, cse):
        self.name = name
        self.year = year
        self.cse = cse
        self.next = None
        self.prev = None
class Sentinel_DLL:
    def __init__(self):
        self.sentinel = Node(None, None, None)
        self.sentinel.next = self.sentinel
        self.sentinel.prev = self.sentinel
    def first_node(self):
        if self.sentinel.next == self.sentinel:
            return None
        else:
            return self.sentinel.next
    def insert_after(self, x, name, year, cse):
        y = Node(name, year, cse)
        y.prev = x
        y.next = x.next
        x.next = y
        y.next.prev = y
    def append(self, name, year, cse):
        last_node = self.sentinel.prev
        self.insert_after(last_node, name, year, cse)
    def delete(self, x):
        x.prev.next = x.next
    def find(self, name, year, cse):
        self.sentinel.name = name
        self.sentinel.year = year
        self.sentinel.cse = cse
        x = self.first_node()
        while x.name != name:
            x = x.next
        self.sentinel.name = None
        self.sentinel.year = None
        self.sentinel.cse = None
        if x == self.sentinel:
            return None
        else:
            return x
L = Sentinel_DLL()
L.append(None, None, None)
L.append('Dima', 1995, 204)
L.append('Vlad', 1995, 207)
L.append('Eva', 1000, 15)
L.append('Pavel', 1568, 158)
node = L.find(None, None, None)
node = node.next
print(node.name)

Офлайн

#2 Ноя. 15, 2014 15:43:33

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Сохранение узлов связного списка в файл и его чтение

1. pickle
2. Двусвязный список, отличается от односвязного, только наличием поля prev

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version