Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 6, 2021 22:52:29

ayelet
Зарегистрирован: 2021-09-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Создать итератор для класса

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

 class Deqeue:
 
    head = None
 
    class Node:
 
        element = None
        next_node = None
 
        def __init__(self, element, next_node=None):
            self.element = element
            self.next_node = next_node
 
    def __iter__(self):
        return self
 
    def __next__(self):

Отредактировано ayelet (Сен. 6, 2021 22:52:48)

Офлайн

#2 Сен. 7, 2021 19:13:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9878
Репутация: +  853  -
Профиль   Отправить e-mail  

Создать итератор для класса

ayelet
Дано задание: создать динамическую структуру очередь
Динамическая структура очередь - это queue. А deque - это динамическая структура дек. Очередь и дек - это разные вещи.

Не надо определять класс в классе. Это глупость несусветная. Если тебя так учат, лучше курс/книгу сменить. Пиши Node снаружи.

Определись сначала, как именно ты будешь реализовывать очередь. Реализовать один и тот же интерфейс очереди можно абсолютно по-разному.

ayelet
получение указателя на первый элемент
Работай с очередью снаружи. Напиши, как ты снаружи используешь очередь, чтобы получить указатель на первый элемент.

ayelet
получение указателя на следующий элемент
Работай с очередью снаружи. Напиши, как ты снаружи используешь очередь, чтобы получить указатель на следующий элемент.

ayelet
получение значения поля данных по значению указателя на запись
Работай с очередью снаружи. Напиши, как ты снаружи используешь очередь, чтобы получить значение поля данных по значению указателя на элемент очереди.

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

Все эти вопросы нужно выяснить до написания реализации очереди, а не во время или после.



Отредактировано py.user.next (Сен. 7, 2021 19:16:04)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version