-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlinkkedList.py
67 lines (62 loc) · 1.62 KB
/
linkkedList.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#Linkked List
class node:
def __init__(self):
self.data=None
self.next=None
self.prev=None
class linked_list:
def __init__(self):
self.head=None
self.tail=None
def list_empty(self):
if self.head==None and self.tail==None:
return True
else:
return False
def list_search(self,k):
node=self.head
if self.list_empty():
raise Exceoption ('List Empty')
while node:
if node.data==k:
return node
node=node.next
return False
def list_insert(self,x):
new_node=node()
new_node.data=x
if self.list_empty():
self.head=new_node
self.tail=new_node
else:
new_node.next=self.head
self.head.prev=new_node
self.head=new_node
def list_delete(self,x):
node=self.head
if self.list_empty():
raise Exceoption('List Empty')
elif x==self.head and x==self.tail:
self.head=None
self.tail=None
elif x==self.head:
x.next.prev=None
self.head=x.next
elif x==self.tail:
x.prev.next=None
self.tail=x.prev
else:
node=self.head
while node:
if x==node:
x.prev.next=x.next
x.next.prev=x.prev
node=node.next
#ll=linked_list()
#ll.list_insert(1)
#ll.list_insert(5)
#ll.list_insert(6)
#x=ll.list_search(5)
#ll.list_delete(x)
#print ll.head.data
#print ll.tail.data