Как реализовать связанный список в Python?



В этой статье показано, как создать связанный список в Python с помощью различных методов для вставки обновления и удаления элементов в связанном списке.

Язык программирования Python - это язык с открытым исходным кодом с различными готовыми реализациями, что делает его уникальным и легким для изучения. Несмотря на то что не поддерживает концепцию связанного списка, есть способ обойти это с помощью другой реализации, чтобы получить связанный список. В этой статье мы узнаем, как создать связанный список в Python. В этом блоге рассматриваются следующие темы:

Давайте начнем!!





как установить php на windows 7

Что такое связанный список?

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

Связанный список - это линейная структура данных с набором нескольких узлов. Где еКаждый элемент хранит свои собственные данные и указатель на расположение следующего элемента. Последняя ссылка в связанном списке указывает на нуль, указывая на конец цепочки. Элемент связного списка называется узел . Первый узел называется голова .Последний узел называетсяв хвостик .
связанный список - связанный список в python - edurekaСтандартная библиотека Python не имеет связанного списка. Мы можем реализовать концепцию структуры данных списка ссылок, используя концепцию узлов.



Теперь, когда мы узнали о том, что такое Linked. Итак, перейдем к реализации связного списка.

Реализация связанного списка

Для создания связного списка мы создаем объект узла и создаем другой класс для использования этого объекта узла.
Код для создания класса Node.
Вышеупомянутая программа создает связанный список с тремя элементами данных.

class Node (object): # Конструктор для инициализации переменных класса def __init __ (self, data = None, next_node = None): self.data = data self.next_node = next_node # get data def get_data (self): return self.data # получить следующее значение def get_next (self): return self.next_node # установить следующие данные def set_next (self, new_next): self.next_node = new_next

Реализация списка ссылок состоит из следующих функций в связанном списке
один. Вставить : Этот метод вставит новый узел в связанный список.
2. Размер : Этот метод вернет размер связанного списка.
3. Поиск : Этот метод вернет узел, содержащий данные, иначе вызовет ошибку
Четыре. Удалить : Этот метод удалит узел, содержащий данные, иначе вызовет ошибку



Давайте посмотрим на методы связанного списка

Метод инициализации в связанном списке

класс LinkedList (объект): def __init __ (self, head = None): self.head = head

Метод Init используется для инициализации класс переменная, если в списке нет узлов, устанавливается значение none.

Вставить:

def insert (self, data): new_node = Node (данные) new_node.set_next (self.head) self.head = new_node

Этот метод вставки принимает данные, инициализирует новый узел с заданными данными и добавляет его в список. Технически вы можете вставить узел в любом месте списка, но самый простой способ сделать это - поместить его в начало списка и указать новый узел в старом заголовке (как бы проталкивая другие узлы вниз по строке).

Размер

# Возвращает общее количество узлов в списке def size (self): current = self.head count = 0 while current: count + = 1 current = current.get_next () return count

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

Поиск

# Возвращает узел в списке, имеющий nodeData, ошибка возникает, если узел отсутствует def search (self, nodeData): current = self.head isPresent = False при текущем и isPresent имеет значение False: if current.get_data () == nodeData: isPresent = Истина иначе: current = current.get_next (), если current - None: поднять ValueError ('Данные отсутствуют в списке') вернуть текущий

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

Удалить

# Удаление узла из связанного списка возвращает ошибку, если узел отсутствует def delete (self, nodeData): current = self.head previous = None isPresent = False while current и isPresent имеет значение False: if current.get_data () == nodeData: isPresent = True else: previous = current current = current.get_next (), если current равно None: поднять ValueError ('Данные отсутствуют в списке'), если предыдущий равен None: self.head = current.get_next () else: previous.set_next ( current.get_next ())

Метод удаления просматривает список таким же образом, как и поиск, но, помимо отслеживания текущего узла, метод удаления также запоминает последний посещенный узел. Когда delete, наконец, дойдет до узла, который он хочет удалить. Он просто удаляет этот узел из цепочки, «обойдя» его.

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

Он укажет на следующий узел в строке. Поскольку никакие узлы не указывают на удаляемый плохой узел, он фактически удаляется из списка!

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

Если вы нашли эту статью о «Связанном списке в Python» релевантной, ознакомьтесь с Надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.

Мы здесь, чтобы помочь вам на каждом этапе вашего пути и разработать учебную программу, предназначенную для студентов и профессионалов, которые хотят учиться. . Курс разработан, чтобы дать вам фору в программировании на Python и обучить вас как основным, так и продвинутым концепциям Python, а также различным любить

Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Связанного списка в Python», и наша команда будет рада ответить.

преимущества и недостатки питона