Sobes.tech
Back to questions
Junior — Middle
64

Когда целесообразно применять односвязный список в программировании?

Answer from AI

sobes.tech AI

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

Например, если нужно реализовать очередь или стек с динамическим размером, односвязный список подойдет лучше, чем массив, если заранее неизвестен размер и часты операции вставки/удаления.

Однако для доступа к элементам по индексу односвязный список менее эффективен, так как требует последовательного обхода.

Пример простого односвязного списка на Python:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class SinglyLinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        current = self.head
        while current.next:
            current = current.next
        current.next = new_node

    def print_list(self):
        current = self.head
        while current:
            print(current.data)
            current = current.next