mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-12-18 01:00:15 +00:00
data_structures/linked_list: Add __str__() function (#3961)
* Adding __str__() function * Removing white space * Update data_structures/linked_list/__init__.py Co-authored-by: xcodz-dot <71920621+xcodz-dot@users.noreply.github.com> * Adding type hints * Update __init__.py * Update __init__.py * Adding the changes requested * Updating to fix pre-commit * Updating __init__.py * Updating __init__.py Co-authored-by: xcodz-dot <71920621+xcodz-dot@users.noreply.github.com>
This commit is contained in:
parent
1e1708b8a1
commit
9c6080a6fc
|
@ -1,19 +1,30 @@
|
|||
"""
|
||||
Linked Lists consists of Nodes.
|
||||
Nodes contain data and also may link to other nodes:
|
||||
- Head Node: First node, the address of the
|
||||
head node gives us access of the complete list
|
||||
- Last node: points to null
|
||||
"""
|
||||
|
||||
from typing import Any
|
||||
|
||||
|
||||
class Node:
|
||||
def __init__(self, item, next):
|
||||
def __init__(self, item: Any, next: Any) -> None:
|
||||
self.item = item
|
||||
self.next = next
|
||||
|
||||
|
||||
class LinkedList:
|
||||
def __init__(self):
|
||||
def __init__(self) -> None:
|
||||
self.head = None
|
||||
self.size = 0
|
||||
|
||||
def add(self, item):
|
||||
def add(self, item: Any) -> None:
|
||||
self.head = Node(item, self.head)
|
||||
self.size += 1
|
||||
|
||||
def remove(self):
|
||||
def remove(self) -> Any:
|
||||
if self.is_empty():
|
||||
return None
|
||||
else:
|
||||
|
@ -22,10 +33,33 @@ class LinkedList:
|
|||
self.size -= 1
|
||||
return item
|
||||
|
||||
def is_empty(self):
|
||||
def is_empty(self) -> bool:
|
||||
return self.head is None
|
||||
|
||||
def __len__(self):
|
||||
def __str__(self) -> str:
|
||||
"""
|
||||
>>> linked_list = LinkedList()
|
||||
>>> linked_list.add(23)
|
||||
>>> linked_list.add(14)
|
||||
>>> linked_list.add(9)
|
||||
>>> print(linked_list)
|
||||
9 --> 14 --> 23
|
||||
"""
|
||||
if not self.is_empty:
|
||||
return ""
|
||||
else:
|
||||
iterate = self.head
|
||||
item_str = ""
|
||||
item_list = []
|
||||
while iterate:
|
||||
item_list.append(str(iterate.item))
|
||||
iterate = iterate.next
|
||||
|
||||
item_str = " --> ".join(item_list)
|
||||
|
||||
return item_str
|
||||
|
||||
def __len__(self) -> int:
|
||||
"""
|
||||
>>> linked_list = LinkedList()
|
||||
>>> len(linked_list)
|
||||
|
|
Loading…
Reference in New Issue
Block a user