Skip to content

Commit 385b23c

Browse files
authored
Added LinkedList files
1 parent bda6792 commit 385b23c

File tree

2 files changed

+147
-0
lines changed

2 files changed

+147
-0
lines changed

LinkedLists/DoublyLinkedList1.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
class Node(object):
2+
3+
def __init__ (self, d, n = None, p = None):
4+
self.data = d
5+
self.next_node = n
6+
self.prev_node = p
7+
8+
def get_next (self):
9+
return self.next_node
10+
11+
def set_next (self, n):
12+
self.next_node = n
13+
14+
def get_prev (self):
15+
return self.prev_node
16+
17+
def set_prev (self, p):
18+
self.prev_node = p
19+
20+
def get_data (self):
21+
return self.data
22+
23+
def set_data (self, d):
24+
self.data = d
25+
26+
27+
class LinkedList (object):
28+
29+
def __init__(self, r = None):
30+
self.root = r
31+
self.size = 0
32+
33+
def get_size (self):
34+
return self.size
35+
36+
def add (self, d):
37+
new_node = Node (d, self.root)
38+
if self.root:
39+
self.root.set_prev(new_node)
40+
self.root = new_node
41+
self.size += 1
42+
43+
def remove (self, d):
44+
this_node = self.root
45+
46+
while this_node:
47+
if this_node.get_data() == d:
48+
next = this_node.get_next()
49+
prev = this_node.get_prev()
50+
51+
if next:
52+
next.set_prev(prev)
53+
if prev:
54+
prev.set_next(next)
55+
else:
56+
self.root = this_node
57+
self.size -= 1
58+
return True # data removed
59+
else:
60+
this_node = this_node.get_next()
61+
return False # data not found
62+
63+
def find (self, d):
64+
this_node = self.root
65+
while this_node:
66+
if this_node.get_data() == d:
67+
return d
68+
else:
69+
this_node = this_node.get_next()
70+
return None
71+
72+
myList = LinkedList()
73+
myList.add(5)
74+
myList.add(8)
75+
myList.add(12)
76+
myList.remove(8)
77+
print(myList.remove(12))
78+
print(myList.find(5))

LinkedLists/LinkedList0.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
class Node(object):
2+
3+
def __init__ (self, d, n = None):
4+
self.data = d
5+
self.next_node = n
6+
7+
def get_next (self):
8+
return self.next_node
9+
10+
def set_next (self, n):
11+
self.next_node = n
12+
13+
def get_data (self):
14+
return self.data
15+
16+
def set_data (self, d):
17+
self.data = d
18+
19+
20+
class LinkedList (object):
21+
22+
def __init__(self, r = None):
23+
self.root = r
24+
self.size = 0
25+
26+
def get_size (self):
27+
return self.size
28+
29+
def add (self, d):
30+
new_node = Node (d, self.root)
31+
self.root = new_node
32+
self.size += 1
33+
34+
def remove (self, d):
35+
this_node = self.root
36+
prev_node = None
37+
38+
while this_node:
39+
if this_node.get_data() == d:
40+
if prev_node:
41+
prev_node.set_next(this_node.get_next())
42+
else:
43+
self.root = this_node.get_next()
44+
self.size -= 1
45+
return True # data removed
46+
else:
47+
prev_node = this_node
48+
this_node = this_node.get_next()
49+
return False # data not found
50+
51+
def find (self, d):
52+
this_node = self.root
53+
while this_node:
54+
if this_node.get_data() == d:
55+
return d
56+
else:
57+
this_node = this_node.get_next()
58+
return None
59+
60+
myList = LinkedList()
61+
myList.add(5)
62+
myList.add(8)
63+
myList.add(12)
64+
print("size="+str(myList.get_size()))
65+
myList.remove(8)
66+
print("size="+str(myList.get_size()))
67+
print(myList.remove(12))
68+
print("size="+str(myList.get_size()))
69+
print(myList.find(5))

0 commit comments

Comments
 (0)