mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-04-08 06:45:54 +00:00
Errors from ruff tests solved
This commit is contained in:
commit
01dfb178b2
@ -3,25 +3,27 @@ from __future__ import annotations
|
||||
from dataclasses import dataclass
|
||||
|
||||
"""
|
||||
This is a sorted linked list class that
|
||||
creates a sorted linked list of integer datatype
|
||||
This is a sorted linked list class that
|
||||
creates a sorted linked list of integer datatype
|
||||
"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class Node:
|
||||
def __init__(self, data):
|
||||
self.data: int = data
|
||||
self.next_node: Node | None = None
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return f"Node({self.data}, {self.next_node})"
|
||||
|
||||
class SortedLinkedList:
|
||||
|
||||
|
||||
class SortedLinedList:
|
||||
def __init__(self):
|
||||
self.numNodes : int = 0
|
||||
self.numNodes: int = 0
|
||||
self.head: Node | None = None
|
||||
self.tail: Node | None = None
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
nodes = []
|
||||
temp = self.head
|
||||
@ -29,12 +31,12 @@ class SortedLinkedList:
|
||||
nodes.append(str(temp.data))
|
||||
temp = temp.next_node
|
||||
return f"SortedLinkedList({', '.join(nodes)})"
|
||||
|
||||
|
||||
def insert(self, data: int):
|
||||
"""This Function inserts node in it's sorted position
|
||||
This function can be re written for any data type but
|
||||
This function can be re written for any data type but
|
||||
the comparator her must have to be changed
|
||||
|
||||
|
||||
Args:
|
||||
data (int): the data of linked list
|
||||
"""
|
||||
@ -54,21 +56,20 @@ class SortedLinkedList:
|
||||
if new_node.next_node is None:
|
||||
self.tail = new_node
|
||||
self.numNodes += 1
|
||||
|
||||
|
||||
def display(self):
|
||||
"""This function displays whole list
|
||||
"""
|
||||
temp=self.head
|
||||
"""This function displays whole list"""
|
||||
temp = self.head
|
||||
while temp:
|
||||
print(temp.data,end=" ")
|
||||
temp=temp.next_node
|
||||
print(temp.data, end=" ")
|
||||
temp = temp.next_node
|
||||
print()
|
||||
|
||||
|
||||
def delete(self, data: int) -> bool:
|
||||
"""This Function deletes first appearance of node with
|
||||
data from it's sorted position
|
||||
|
||||
This function can be re written for any data type but
|
||||
"""This Function deletes first appearance of node with
|
||||
data from it's sorted position
|
||||
|
||||
This function can be re written for any data type but
|
||||
the comparator her must have to be changed
|
||||
|
||||
Args:
|
||||
@ -96,9 +97,9 @@ class SortedLinkedList:
|
||||
temp_node = temp_node.next_node
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def search(self, data: int) -> bool:
|
||||
"""This function searches the data given input from user
|
||||
"""This function searches the data given input from user
|
||||
and return whether the data exists or not
|
||||
|
||||
Args:
|
||||
@ -113,6 +114,7 @@ class SortedLinkedList:
|
||||
return True
|
||||
temp = temp.next_node
|
||||
return False
|
||||
|
||||
def is_empty(self) -> bool:
|
||||
"""This function will check whether the list is empty or not
|
||||
|
||||
@ -120,8 +122,8 @@ class SortedLinkedList:
|
||||
bool: flag indicating whether list is empty or not
|
||||
"""
|
||||
return self.head is None
|
||||
|
||||
def length (self) -> int:
|
||||
|
||||
def length(self) -> int:
|
||||
"""This function returns the length of the linked list
|
||||
|
||||
|
||||
@ -129,7 +131,7 @@ class SortedLinkedList:
|
||||
int: The length of linked list
|
||||
"""
|
||||
return numNodes
|
||||
|
||||
|
||||
def min_value(self) -> int | None:
|
||||
"""This function will return minimum value
|
||||
|
||||
@ -139,7 +141,7 @@ class SortedLinkedList:
|
||||
if self.head is None:
|
||||
return None
|
||||
return self.head.data
|
||||
|
||||
|
||||
def max_value(self) -> int | None:
|
||||
"""This function will return maximum value
|
||||
|
||||
@ -150,20 +152,18 @@ class SortedLinkedList:
|
||||
if self.tail is None:
|
||||
return None
|
||||
return self.tail.data
|
||||
|
||||
|
||||
def remove_duplicates(self):
|
||||
"""This Function will remove the duplicates from the list
|
||||
"""
|
||||
"""This Function will remove the duplicates from the list"""
|
||||
temp = self.head
|
||||
while temp and temp.next_node:
|
||||
if temp.data == temp.next_node.data:
|
||||
temp.next_node = temp.next_node.next_node
|
||||
else:
|
||||
temp = temp.next_node
|
||||
|
||||
|
||||
def reverse(self):
|
||||
"""This function will reveres the list
|
||||
"""
|
||||
"""This function will reveres the list"""
|
||||
prev = None
|
||||
current = self.head
|
||||
while current:
|
||||
@ -187,36 +187,30 @@ class SortedLinkedList:
|
||||
return
|
||||
self.tail.next_node = other_list.head
|
||||
self.tail = other_list.tail
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
linked_list=SortedLinkedList()
|
||||
linkedList = SortedLinedList()
|
||||
while True:
|
||||
print("Enter")
|
||||
print("1. Insert")
|
||||
print("2. Display")
|
||||
print("3. Delete")
|
||||
print("4. Exit")
|
||||
choice= input("Enter your choice: ")
|
||||
|
||||
if choice == '1':
|
||||
choice = input("Enter your choice: ")
|
||||
|
||||
if choice == "1":
|
||||
data = int(input("Enter a number: "))
|
||||
linked_list.insert(data)
|
||||
elif choice == '2':
|
||||
linked_list.display()
|
||||
elif choice == '3':
|
||||
linkedList.insert(data)
|
||||
elif choice == "2":
|
||||
linkedList.display()
|
||||
elif choice == "3":
|
||||
data = int(input("Enter the data to delete: "))
|
||||
if linked_list.delete(data):
|
||||
print(f"Node with data {data} deleted successfully")
|
||||
else:
|
||||
print(f"Node with data {data} not found in the list")
|
||||
elif choice == '4':
|
||||
print("Node with data {} not found in the list".format(data))
|
||||
elif choice == "4":
|
||||
break
|
||||
else:
|
||||
print("Wrong input")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user