From d5fd2220e71ec66c61a98258abb9de96ab2b8ed6 Mon Sep 17 00:00:00 2001 From: Avkaran singh Date: Thu, 7 Sep 2017 01:41:15 +0530 Subject: [PATCH 1/6] Create singly_LinkedList.py --- .../LinkedList/singly_LinkedList.py | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 data_structures/LinkedList/singly_LinkedList.py diff --git a/data_structures/LinkedList/singly_LinkedList.py b/data_structures/LinkedList/singly_LinkedList.py new file mode 100644 index 000000000000..ba8b13a26a4c --- /dev/null +++ b/data_structures/LinkedList/singly_LinkedList.py @@ -0,0 +1,110 @@ +class Node: #create a Node + def __int__(self,data): + self.data=data #given data + self.next=None #given next to None + + + + +class Linked_List: + pass + def insert_tail(Head,data): #insert the data at tail + tamp=Head + if(tamp==None): + newNod=Node() #create newNode Node type and given data and next + newNod.data=data + newNod.next=None + Head=newNod + + else: + while tamp.next!=None: #reaches the last Node + tamp=tamp.next + newNod = Node() #create a new node + newNod.data = data + newNod.next = None + tamp.next=newNod #put the newnode into last node + + return Head + def insert_head(Head,data): + tamp = Head + if (tamp == None): + newNod = Node() #create a new Node + newNod.data = data + newNod.next = None + Head = newNod #make new node to Head + # print(Head.data) + return Head + else: + newNod = Node() + newNod.data = data + newNod.next = Head #put the Head at NewNode Next + Head=newNod # make a NewNode to Head + # print(tamp.data) + return Head + + + + def Print(Head): #print every node data + tamp=Node() + tamp=Head + while tamp!=None: + print(tamp.data) + tamp=tamp.next + + + + def delete_head(Head): #delete from head + if Head==None: + print("List is empty cannot delete") + + else: + Head=Head.next + + return Head #return new Head + + + + def delete_tail(Head): #delete from tail + if Head==None: + print("List is empty cannot delete") + else: + tamp = Node() + tamp = Head + while (tamp.next).next!= None: #reach tha 2nd last element + tamp = tamp.next + tamp.next=None #delet the last element by give next None to 2nd last Element + + + + def isEmpty(Head): + if(Head==None): #check Head is None or Not + print("list is empty") + return True #return Ture if it is none + else: + print("Not empty") + return False #check False if it's not none + + + +##check + +Head=None +Head=Linked_List.insert_tail(Head,5) +Head=Linked_List.insert_tail(Head,6) +Head=Linked_List.insert_head(Head,7) +Head=Linked_List.insert_head(Head,9) + +Linked_List.Print(Head) + +print("delete_tail") +Linked_List.delete_tail(Head) +Linked_List.Print(Head) + + +print("delete_head") +Head=Linked_List.delete_head(Head) +Linked_List.Print(Head) + +Linked_List.isEmpty(Head) + + From fcd5ac149a321a136b3339881f9cff342fcb2c5b Mon Sep 17 00:00:00 2001 From: Avkaran singh Date: Fri, 8 Sep 2017 16:58:51 +0530 Subject: [PATCH 2/6] Update singly_LinkedList.py --- .../LinkedList/singly_LinkedList.py | 36 ++++--------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/data_structures/LinkedList/singly_LinkedList.py b/data_structures/LinkedList/singly_LinkedList.py index ba8b13a26a4c..98e9f0420811 100644 --- a/data_structures/LinkedList/singly_LinkedList.py +++ b/data_structures/LinkedList/singly_LinkedList.py @@ -9,22 +9,22 @@ def __int__(self,data): class Linked_List: pass def insert_tail(Head,data): #insert the data at tail - tamp=Head - if(tamp==None): + tamp=Head #create a tamp as a head + if(tamp==None): # if linkedlist is empty newNod=Node() #create newNode Node type and given data and next newNod.data=data newNod.next=None Head=newNod else: - while tamp.next!=None: #reaches the last Node + while tamp.next!=None: #find the last Node tamp=tamp.next newNod = Node() #create a new node newNod.data = data newNod.next = None tamp.next=newNod #put the newnode into last node - return Head + return Head #return first node of linked list def insert_head(Head,data): tamp = Head if (tamp == None): @@ -32,14 +32,13 @@ def insert_head(Head,data): newNod.data = data newNod.next = None Head = newNod #make new node to Head - # print(Head.data) return Head else: newNod = Node() newNod.data = data newNod.next = Head #put the Head at NewNode Next Head=newNod # make a NewNode to Head - # print(tamp.data) + return Head @@ -70,9 +69,9 @@ def delete_tail(Head): #delete from tail else: tamp = Node() tamp = Head - while (tamp.next).next!= None: #reach tha 2nd last element + while (tamp.next).next!= None: #find the 2nd last element tamp = tamp.next - tamp.next=None #delet the last element by give next None to 2nd last Element + tamp.next=None #delete the last element by give next None to 2nd last Element @@ -86,25 +85,4 @@ def isEmpty(Head): -##check - -Head=None -Head=Linked_List.insert_tail(Head,5) -Head=Linked_List.insert_tail(Head,6) -Head=Linked_List.insert_head(Head,7) -Head=Linked_List.insert_head(Head,9) - -Linked_List.Print(Head) - -print("delete_tail") -Linked_List.delete_tail(Head) -Linked_List.Print(Head) - - -print("delete_head") -Head=Linked_List.delete_head(Head) -Linked_List.Print(Head) - -Linked_List.isEmpty(Head) - From d78413992649da524b8e582c824682d9103e0b36 Mon Sep 17 00:00:00 2001 From: Avkaran singh Date: Fri, 8 Sep 2017 17:26:39 +0530 Subject: [PATCH 3/6] Update singly_LinkedList.py --- .../LinkedList/singly_LinkedList.py | 27 ++++++------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/data_structures/LinkedList/singly_LinkedList.py b/data_structures/LinkedList/singly_LinkedList.py index 98e9f0420811..ccc488f59ed7 100644 --- a/data_structures/LinkedList/singly_LinkedList.py +++ b/data_structures/LinkedList/singly_LinkedList.py @@ -3,9 +3,6 @@ def __int__(self,data): self.data=data #given data self.next=None #given next to None - - - class Linked_List: pass def insert_tail(Head,data): #insert the data at tail @@ -32,14 +29,13 @@ def insert_head(Head,data): newNod.data = data newNod.next = None Head = newNod #make new node to Head - return Head + else: newNod = Node() newNod.data = data newNod.next = Head #put the Head at NewNode Next Head=newNod # make a NewNode to Head - - return Head + return Head @@ -53,10 +49,7 @@ def Print(Head): #print every node data def delete_head(Head): #delete from head - if Head==None: - print("List is empty cannot delete") - - else: + if Head!=None: Head=Head.next return Head #return new Head @@ -64,24 +57,20 @@ def delete_head(Head): #delete from head def delete_tail(Head): #delete from tail - if Head==None: - print("List is empty cannot delete") - else: + if Head!=None: tamp = Node() tamp = Head while (tamp.next).next!= None: #find the 2nd last element tamp = tamp.next - tamp.next=None #delete the last element by give next None to 2nd last Element - + tamp.next=None #delete the last element by give next None to 2nd last Element + return Head def isEmpty(Head): if(Head==None): #check Head is None or Not - print("list is empty") - return True #return Ture if it is none + return True #return Ture if list is empty else: - print("Not empty") - return False #check False if it's not none + return False #check False if it's not empty From 3ee70b3d5b66293cd550f0f538bef97843664d24 Mon Sep 17 00:00:00 2001 From: Avkaran singh Date: Fri, 8 Sep 2017 17:28:49 +0530 Subject: [PATCH 4/6] Update singly_LinkedList.py --- data_structures/LinkedList/singly_LinkedList.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/data_structures/LinkedList/singly_LinkedList.py b/data_structures/LinkedList/singly_LinkedList.py index ccc488f59ed7..ae76d09dee9f 100644 --- a/data_structures/LinkedList/singly_LinkedList.py +++ b/data_structures/LinkedList/singly_LinkedList.py @@ -12,7 +12,6 @@ def insert_tail(Head,data): #insert the data at tail newNod.data=data newNod.next=None Head=newNod - else: while tamp.next!=None: #find the last Node tamp=tamp.next @@ -20,16 +19,15 @@ def insert_tail(Head,data): #insert the data at tail newNod.data = data newNod.next = None tamp.next=newNod #put the newnode into last node - return Head #return first node of linked list + def insert_head(Head,data): tamp = Head if (tamp == None): newNod = Node() #create a new Node newNod.data = data newNod.next = None - Head = newNod #make new node to Head - + Head = newNod #make new node to Head else: newNod = Node() newNod.data = data @@ -37,8 +35,6 @@ def insert_head(Head,data): Head=newNod # make a NewNode to Head return Head - - def Print(Head): #print every node data tamp=Node() tamp=Head @@ -46,16 +42,11 @@ def Print(Head): #print every node data print(tamp.data) tamp=tamp.next - - def delete_head(Head): #delete from head if Head!=None: Head=Head.next - return Head #return new Head - - def delete_tail(Head): #delete from tail if Head!=None: tamp = Node() @@ -65,7 +56,6 @@ def delete_tail(Head): #delete from tail tamp.next=None #delete the last element by give next None to 2nd last Element return Head - def isEmpty(Head): if(Head==None): #check Head is None or Not return True #return Ture if list is empty From 31a73b4d8939d94ede90a0a0541775ab2324b1b1 Mon Sep 17 00:00:00 2001 From: Avkaran singh Date: Fri, 8 Sep 2017 18:10:43 +0530 Subject: [PATCH 5/6] Update singly_LinkedList.py --- .../LinkedList/singly_LinkedList.py | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/data_structures/LinkedList/singly_LinkedList.py b/data_structures/LinkedList/singly_LinkedList.py index ae76d09dee9f..627ba4e0be77 100644 --- a/data_structures/LinkedList/singly_LinkedList.py +++ b/data_structures/LinkedList/singly_LinkedList.py @@ -1,66 +1,66 @@ -class Node: #create a Node +class Node:#create a Node def __int__(self,data): - self.data=data #given data - self.next=None #given next to None + self.data=data#given data + self.next=None#given next to None class Linked_List: pass - def insert_tail(Head,data): #insert the data at tail - tamp=Head #create a tamp as a head - if(tamp==None): # if linkedlist is empty - newNod=Node() #create newNode Node type and given data and next + def insert_tail(Head,data):#insert the data at tail + tamp=Head#create a tamp as a head + if(tamp==None):#if linkedlist is empty + newNod=Node()#create newNode Node type and given data and next newNod.data=data newNod.next=None Head=newNod else: - while tamp.next!=None: #find the last Node + while tamp.next!=None:#find the last Node tamp=tamp.next - newNod = Node() #create a new node + newNod = Node()#create a new node newNod.data = data newNod.next = None - tamp.next=newNod #put the newnode into last node - return Head #return first node of linked list + tamp.next=newNod#put the newnode into last node + return Head#return first node of linked list def insert_head(Head,data): tamp = Head if (tamp == None): - newNod = Node() #create a new Node + newNod = Node()#create a new Node newNod.data = data newNod.next = None - Head = newNod #make new node to Head + Head = newNod#make new node to Head else: newNod = Node() newNod.data = data - newNod.next = Head #put the Head at NewNode Next - Head=newNod # make a NewNode to Head + newNod.next = Head#put the Head at NewNode Next + Head=newNod#make a NewNode to Head return Head - - def Print(Head): #print every node data + + def Print(Head):#print every node data tamp=Node() tamp=Head while tamp!=None: print(tamp.data) tamp=tamp.next - def delete_head(Head): #delete from head + def delete_head(Head):#delete from head if Head!=None: Head=Head.next - return Head #return new Head + return Head#return new Head - def delete_tail(Head): #delete from tail + def delete_tail(Head):#delete from tail if Head!=None: tamp = Node() tamp = Head - while (tamp.next).next!= None: #find the 2nd last element + while (tamp.next).next!= None:#find the 2nd last element tamp = tamp.next - tamp.next=None #delete the last element by give next None to 2nd last Element + tamp.next=None#delete the last element by give next None to 2nd last Element return Head def isEmpty(Head): - if(Head==None): #check Head is None or Not - return True #return Ture if list is empty + if(Head==None):#check Head is None or Not + return True#return Ture if list is empty else: - return False #check False if it's not empty + return False#check False if it's not empty From ea5e3c4f3359a3336d897a655fa4f8e1f0409395 Mon Sep 17 00:00:00 2001 From: Avkaran singh Date: Fri, 8 Sep 2017 18:13:01 +0530 Subject: [PATCH 6/6] Update singly_LinkedList.py --- data_structures/LinkedList/singly_LinkedList.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/data_structures/LinkedList/singly_LinkedList.py b/data_structures/LinkedList/singly_LinkedList.py index 627ba4e0be77..941e8a0faaa8 100644 --- a/data_structures/LinkedList/singly_LinkedList.py +++ b/data_structures/LinkedList/singly_LinkedList.py @@ -2,7 +2,6 @@ class Node:#create a Node def __int__(self,data): self.data=data#given data self.next=None#given next to None - class Linked_List: pass def insert_tail(Head,data):#insert the data at tail @@ -19,8 +18,7 @@ def insert_tail(Head,data):#insert the data at tail newNod.data = data newNod.next = None tamp.next=newNod#put the newnode into last node - return Head#return first node of linked list - + return Head#return first node of linked list def insert_head(Head,data): tamp = Head if (tamp == None): @@ -33,20 +31,17 @@ def insert_head(Head,data): newNod.data = data newNod.next = Head#put the Head at NewNode Next Head=newNod#make a NewNode to Head - return Head - + return Head def Print(Head):#print every node data tamp=Node() tamp=Head while tamp!=None: print(tamp.data) tamp=tamp.next - def delete_head(Head):#delete from head if Head!=None: Head=Head.next return Head#return new Head - def delete_tail(Head):#delete from tail if Head!=None: tamp = Node() @@ -55,7 +50,6 @@ def delete_tail(Head):#delete from tail tamp = tamp.next tamp.next=None#delete the last element by give next None to 2nd last Element return Head - def isEmpty(Head): if(Head==None):#check Head is None or Not return True#return Ture if list is empty