Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Jak zaimplementować listę wiązaną czyli linked list w Pythonie?

Listy wiązane to podstawowa struktura danych, która umożliwia elastyczne zarządzanie kolekcjami elementów. W przeciwieństwie do tablic, listy wiązane nie wymagają ciągłej przestrzeni w pamięci, co pozwala na efektywne dodawanie i usuwanie elementów. W Pythonie listę wiązaną można zaimplementować, korzystając z klas i odwołań. Pokażemy, jak stworzyć prostą jednokierunkową listę wiązaną, która pozwoli na dodawanie i wyświetlanie elementów.

Implementacja listy wiązanej

class Node:
    # Konstruktor węzła, przechowuje dane i referencję do następnego węzła
    def __init__(self, data):
        self.data = data  # Przechowuje dane
        self.next = None  # Referencja do następnego węzła

class LinkedList:
    # Konstruktor listy, inicjalizuje pustą listę
    def __init__(self):
        self.head = None  # Początek listy

    # Metoda do dodawania elementów na koniec listy
    def append(self, data):
        new_node = Node(data)  # Tworzenie nowego węzła
        if self.head is None:  # Sprawdzanie czy lista jest pusta
            self.head = new_node  # Ustawienie nowego węzła jako głowy
            return
        last_node = self.head
        while last_node.next:  # Przechodzenie do ostatniego węzła
            last_node = last_node.next
        last_node.next = new_node  # Dodanie nowego węzła na końcu

    # Metoda do wyświetlania wszystkich elementów listy
    def print_list(self):
        cur_node = self.head
        while cur_node:  # Przechodzenie przez listę
            print(cur_node.data)  # Wyświetlanie danych węzła
            cur_node = cur_node.next  # Przejście do następnego węzła

# Przykład użycia
if __name__ == "__main__":
    llist = LinkedList()
    llist.append(1)
    llist.append(2)
    llist.append(3)

    llist.print_list()

Wyjaśnienie kodu

W powyższym przykładzie zdefiniowaliśmy dwie klasy: Node, która reprezentuje pojedynczy węzeł w liście wiązanej, przechowujący dane i referencję do następnego węzła, oraz LinkedList, która reprezentuje całą listę wiązaną. Klasa LinkedList zawiera metodę append, służącą do dodawania nowych węzłów na końcu listy, oraz metodę print_list, która pozwala na wyświetlenie wszystkich elementów listy.

Podsumowanie

Lista wiązana w Pythonie jest przykładem elastycznej struktury danych, która pozwala na efektywne zarządzanie kolekcjami elementów. Dzięki implementacji listy wiązanej za pomocą klas, możemy łatwo dodawać i usuwać elementy, a także przeglądać zawartość listy. Prezentowana implementacja jednokierunkowej listy wiązanej może być punktem wyjścia do eksploracji bardziej złożonych struktur danych, takich jak listy dwukierunkowe czy listy cykliczne.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.