File tree 1 file changed +20
-15
lines changed
data_structures/linked_list
1 file changed +20
-15
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,16 @@ def __init__(self):
28
28
self .head = None # First node in list
29
29
self .tail = None # Last node in list
30
30
31
+ def __str__ (self ):
32
+ if self .is_empty :
33
+ return "List is empty"
34
+ current = self .head
35
+ nodes = []
36
+ while current is not None :
37
+ nodes .append (current )
38
+ current = current .next
39
+ return " " .join (str (node ) for node in nodes )
40
+
31
41
def insert_at_head (self , data ):
32
42
new_node = Node (data )
33
43
if self .is_empty :
@@ -55,9 +65,13 @@ def delete_head(self) -> str:
55
65
56
66
def insert_at_tail (self , data ):
57
67
new_node = Node (data )
58
- self .tail .next = new_node
59
- new_node .previous = self .tail
60
- self .tail = new_node
68
+ if self .is_empty :
69
+ self .tail = new_node
70
+ self .head = new_node
71
+ else :
72
+ self .tail .next = new_node
73
+ new_node .previous = self .tail
74
+ self .tail = new_node
61
75
62
76
def delete_tail (self ) -> str :
63
77
if self .is_empty :
@@ -94,24 +108,15 @@ def delete(self, data) -> str:
94
108
return data
95
109
96
110
@property
97
- def is_empty (self ): # Will return True if the list is empty
111
+ def is_empty (self ): # return True if the list is empty
98
112
return self .head is None
99
113
100
- def display (self ): # Prints contents of the list
101
- if self .is_empty :
102
- return "List is empty"
103
- current = self .head
104
- while current is not None :
105
- current .display_node ()
106
- current = current .next
107
- print ()
108
-
109
114
110
115
class Node :
111
116
def __init__ (self , data ):
112
117
self .data = data
113
118
self .previous = None
114
119
self .next = None
115
120
116
- def display_node (self ):
117
- print ( f"{ self .data } " , end = " " )
121
+ def __str__ (self ):
122
+ return f"{ self .data } "
You can’t perform that action at this time.
0 commit comments