Как да внедря свързан списък в Python?



Тази статия показва как можете да създадете свързан списък в python с различни методи за вмъкване на актуализация и премахване на елементите в свързания списък.

Езикът за програмиране Python е език с отворен код с различни внедрени приложения, което го прави уникален и по-лесен за учене. Макар че не поддържа концепцията за свързан списък, има начин да го заобиколите чрез различно изпълнение, за да получите свързан списък. В тази статия ще научим как можем да направим свързан списък в Python. Следват темите, обхванати в този блог:

Нека да започнем!!





Какво е свързан списък?

Списъкът с връзки е последователност от възли, имащи подобен тип данни, всеки възел съдържа един обект от данни и указател към следващия възел.

Свързаният списък е линейна структура от данни със събирането на множество възли. Където дach елемент съхранява свои собствени данни и указател за местоположението на следващия елемент. Последната връзка в свързания списък сочи към нула, указвайки края на веригата. Елемент в свързан списък се нарича a възел . Първият възел се нарича глава .Извиква се последният възелна опашка .
свързан списък - свързан списък в python - edurekaСтандартната библиотека на python няма свързан списък. Можем да приложим концепцията за структурата на данните от списъка с връзки, като използваме концепцията за възлите.



Сега, когато научихме какво е свързано. Така че нека преминем към внедряване на свързан списък.

Внедряване на свързан списък

За създаване на свързан списък ние създаваме обект на възел и създаваме друг клас, който да използва този обект на възел.
Код за създаване на клас 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.next_node # задай следващите данни def set_next (самостоятелно, new_next): self.next_node = new_next

Внедряването на списък с връзки се състои от следната функционалност в свързания списък
един. Поставете : Този метод ще вмъкне нов възел в свързан списък.
2. Размер : Този метод ще върне размера на свързания списък.
3. Търсене : Този метод ще върне възел, съдържащ данните, в противен случай ще предизвика грешка
Четири. Изтрий : Този метод ще изтрие възел, съдържащ данните, в противен случай ще предизвика грешка



Нека да видим методите на свързания списък

Init метод в свързан списък

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

Init методът се използва за инициализация на a клас променлива, ако списъкът няма възли, той е зададен на none.

Вмъкване:

def insert (self, data): new_node = Node (data) new_node.set_next (self.head) self.head = new_node

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

Размер

# Връща общия брой възли в дефинирания размер на списъка (self): current = self.head count = 0, докато current: count + = 1 current = current.get_next () return return

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

Търсене

# Връща възела в списъка с nodeData, възникна грешка, ако възелът не присъства def search (self, nodeData): current = self.head isPresent = False while current и isPresent е False: if current.get_data () == nodeData: isPresent = Вярно иначе: current = current.get_next (), ако токът е None: повишете ValueError ('Данните не присъстват в списъка') върнете текущия

Търсенето всъщност е много подобно на размера, но вместо да обходи целия списък с възли, той проверява на всяка спирка, за да види дали текущият възел има исканите данни. Ако е така, връща възела, съдържащ тези данни. Ако методът премине през целия списък, но все още не е намерил данните, той поражда грешка в стойността и уведомява потребителя, че данните не са в списъка.

Изтрий

как да направя до силата на
# Премахване на възела от свързания списък връща грешка, ако възел не присъства def delete (self, nodeData): current = self.head previous = None isPresent = False while current и isPresent е False: if current.get_data () == nodeData: isPresent = Вярно друго: предишно = текущо текущо = текущо.get_next (), ако токът е None: повишете ValueError ('Данните не присъстват в списъка'), ако предишното е None: self.head = current.get_next () else: previous.set_next ( current.get_next ())

Методът за изтриване обхожда списъка по същия начин, както го прави търсенето, но в допълнение към проследяването на текущия възел, методът за изтриване помни и последния посетен възел. Когато изтриването най-накрая стигне до възела, той иска да изтрие. Той просто премахва този възел от веригата, като го „прескача“.

С това искам да кажа, че когато методът за изтриване достигне възела, който иска да изтрие, той гледа последния възел, който е посетил („предишния“ възел) и нулира показалеца на предишния възел. Вместо да сочи към скоро изтрития възел.

Той ще сочи към следващия възел на линия. Тъй като нито един възел не сочи към лошия възел, който се изтрива, той ефективно се премахва от списъка!

Това ни води до края на тази статия, където научихме как можем да направим свързан списък в python с подобно изпълнение, въпреки че python всъщност не поддържа концепцията за свързан списък. Надявам се, че сте наясно с всичко споделено с вас в този урок.

Ако сте намерили тази статия за „Свързан списък в Python“ подходяща, разгледайте Доверена компания за онлайн обучение с мрежа от над 250 000 доволни обучаващи се разпространява по целия свят.

Ние сме тук, за да ви помогнем при всяка стъпка по вашето пътуване и да изготвим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат . Курсът е създаден, за да ви даде начален старт в програмирането на Python и да ви обучи както за основните, така и за напредналите концепции на Python, заедно с различни като

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари на „Свързан списък в Python“ и нашият екип ще се радва да отговори.