Вот несколько распространенных структур данных и их методов, а также примеры кода:
-
Массивы:
- Доступ к элементу:
array[index] - Вставка элемента:
array.push(element) - Удаление элемента:
array.splice(index, 1) - Нахождение длины:
array.length
- Доступ к элементу:
-
Связанные списки:
- Вставка узла в начало:
class Node: def __init__(self, data): self.data = data self.next = None def insert_at_beginning(head, data): new_node = Node(data) new_node.next = head return new_node - Удаление узла:
def delete_node(head, key): current = head # If the key is found in the head node if current and current.data == key: head = current.next current = None return head # Traverse the linked list to find the key prev = None while current and current.data != key: prev = current current = current.next # If the key is not present in the linked list if current is None: return head # Remove the node prev.next = current.next current = None return head
- Вставка узла в начало:
-
Стеки:
- Отправка элемента:
stack.append(element) - Извлечение элемента:
stack.pop() - Проверка того, пуст ли стек:
len(stack) == 0
- Отправка элемента:
-
Очереди:
- Постановка элемента в очередь:
queue.append(element) - Извлечение элемента из очереди:
queue.pop(0) - Проверка, пуста ли очередь:
len(queue) == 0
- Постановка элемента в очередь:
-
Хеш-таблицы:
- Добавление пары ключ-значение:
hash_table[key] = value - Доступ к значению по ключу:
value = hash_table[key] - Удаление пары ключ-значение:
del hash_table[key]
- Добавление пары ключ-значение:
-
Деревья:
- Вставка узла:
class Node: def __init__(self, data): self.data = data self.left = None self.right = None def insert(root, data): if root is None: return Node(data) else: if data < root.data: root.left = insert(root.left, data) else: root.right = insert(root.right, data) return root - Обход дерева (например, обход по порядку):
def inorder_traversal(root): if root: inorder_traversal(root.left) print(root.data), inorder_traversal(root.right)
- Вставка узла:
-
Графики:
- Добавление ребра между двумя вершинами:
graph[vertex1].append(vertex2) - Проверка наличия ребра между двумя вершинами:
vertex2 в графе[vertex1] - Нахождение соседей вершины:
graph[vertex]
- Добавление ребра между двумя вершинами: