Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 22 additions & 3 deletions src/linked_list.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,37 @@
from typing import Any


class Node:
"""Класс для узла односвязного списка"""
pass
def __init__(self, data: Any):
self.data = data
self.next = None


class LinkedList:
"""Класс для односвязного списка"""
head = None
top = None

def insert_beginning(self, data: dict) -> None:
"""Принимает данные (словарь) и добавляет узел с этими данными в начало связанного списка"""
pass
if self.head is None:
self.head = Node(data)

else:
node = Node(data)
node.next = self.head
self.head = node

def insert_at_end(self, data: dict) -> None:
"""Принимает данные (словарь) и добавляет узел с этими данными в конец связанного списка"""
pass
if self.top is None:
self.top = Node(data)

else:
node = Node(data)
self.top.next = node
self.top = node

def __str__(self) -> str:
"""Вывод данных односвязного списка в строковом представлении"""
Expand Down
21 changes: 16 additions & 5 deletions src/stack.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,45 @@
class Node:
"""Класс для узла стека"""

def __init__(self, data, next_node):
def __init__(self, data, next_node=None):
"""
Конструктор класса Node

:param data: данные, которые будут храниться в узле
"""
pass

self.data = data
self.next_node = next_node


class Stack:
"""Класс для стека"""

def __init__(self):
"""Конструктор класса Stack"""
pass
self.top = None

def push(self, data):
"""
Метод для добавления элемента на вершину стека

:param data: данные, которые будут добавлены на вершину стека
"""
pass
if self.top is None:
self.top = Node(data)

else:
node = Node(data)
node.next_node = self.top
self.top = node

def pop(self):
"""
Метод для удаления элемента с вершины стека и его возвращения

:return: данные удаленного элемента
"""
pass
data = self.top.data
self.top = self.top.next_node

return data