From 1f47708d95078bf4d669e33d227b7c59bb6c6e6d Mon Sep 17 00:00:00 2001 From: Rohan Somadder <87234603+Rohan-Somadder@users.noreply.github.com> Date: Tue, 31 Aug 2021 21:59:20 +0530 Subject: [PATCH 1/2] Updated the messages when no same data is found --- .../3_LinkedList/3_linked_lists.py | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 data_structures/3_LinkedList/3_linked_lists.py diff --git a/data_structures/3_LinkedList/3_linked_lists.py b/data_structures/3_LinkedList/3_linked_lists.py new file mode 100644 index 0000000..704ceab --- /dev/null +++ b/data_structures/3_LinkedList/3_linked_lists.py @@ -0,0 +1,158 @@ +class Node: + def __init__(self,val=None,next=None): + self.val = val + self.next = next + + +class LinkedList: + def __init__(self): + self.head=None + + def show(self): + if self.head == None: + print('Linked List is empty') + return + else: + itr = self.head + while itr: + print(itr.val,' --> ',end='') + itr=itr.next + print('None') + + def getlength(self): + itr = self.head + c=0 + while itr: + c+=1 + itr = itr.next + return c + + def insert_at_end(self,val): + if self.head is None: + node = Node(val,None) + self.head = node + return + else: + itr = self.head + while itr.next : + itr=itr.next + itr.next=Node(val,None) + + def insert_at_beginning(self,val): + node = Node(val,self.head) + self.head=node + + def insert_values(self,x): + self.head = None + for d in x: + self.insert_at_end(d) + + def insert_at_pos(self,pos,val): + if pos < 0 or pos >= self.getlength(): + raise Exception("Invalid syntax") + + if pos == 0: + self.insert_at_beginning(val) + return + elif pos == self.getlength() - 1: + self.insert_at_end(val) + return + else: + itr = self.head + c = 0 + while itr: + if c==pos -1: + node = Node(val,itr.next) + itr.next=node + break + c+=1 + itr = itr.next + + def remove_at_pos(self,pos): + if pos < 0 or pos >= self.getlength(): + raise Exception('Invalid position') + if pos ==0: + self.head=self.head.next + return + itr = self.head + c=0 + while itr: + if c==pos-1: + itr.next=itr.next.next + break + c+=1 + itr=itr.next + pass + # Adding for task + def insert_after_value(self,val_before,val): + if self.head is None: + return + + if self.head.val==val_before: + self.head.next = Node(val,self.head.next) + return + + itr=self.head + c=0 + while itr: + if val_before==itr.val: + self.insert_at_pos(c+1,val) + break + c+=1 + itr=itr.next + else: + print('Data is not in the linked list') + + def remove_by_val(self,val): + if self.head is None: + return + + if self.head.val == val: + self.head = self.head.next + return + + itr=self.head + c=0 + while itr: + if itr.val == val: + self.remove_at_pos(c) + break + itr=itr.next + c+=1 + else: + print('No such value present in linked list') + + + +if __name__ == '__main__': + ''' + l=LinkedList() + l.insert_values(['A','B','C','D']) + l.show() + l.insert_at_pos(2,'F') + l.show() + l.remove_at_pos(3) + l.show() + l.insert_at_end('R') + l.show() + l.insert_at_beginning('J') + l.show() + l.insert_after_value('A','K') + l.show() + l.remove_by_val('K') + l.show() + ''' + ll = LinkedList() + ll.insert_values(["banana","mango","grapes","orange"]) + ll.show() + ll.insert_after_value("mango","apple") # insert apple after mango + ll.show() + ll.remove_by_val("orange") # remove orange from linked list + ll.show() + ll.remove_by_val("figs") + ll.show() + ll.remove_by_val("banana") + ll.remove_by_val("mango") + ll.remove_by_val("apple") + ll.remove_by_val("grapes") + ll.show() From 475fd58b313199fe6909647ce3bd0f02d5654271 Mon Sep 17 00:00:00 2001 From: Rohan Somadder <87234603+Rohan-Somadder@users.noreply.github.com> Date: Tue, 31 Aug 2021 22:00:32 +0530 Subject: [PATCH 2/2] Same file is present --- data_structures/3_LinkedList/3_linked_list.py | 99 ------------------- 1 file changed, 99 deletions(-) delete mode 100644 data_structures/3_LinkedList/3_linked_list.py diff --git a/data_structures/3_LinkedList/3_linked_list.py b/data_structures/3_LinkedList/3_linked_list.py deleted file mode 100644 index a6d9466..0000000 --- a/data_structures/3_LinkedList/3_linked_list.py +++ /dev/null @@ -1,99 +0,0 @@ -class Node: - def __init__(self, data=None, next=None): - self.data = data - self.next = next - -class LinkedList: - def __init__(self): - self.head = None - - def print(self): - if self.head is None: - print("Linked list is empty") - return - itr = self.head - llstr = '' - while itr: - llstr += str(itr.data)+' --> ' if itr.next else str(itr.data) - itr = itr.next - print(llstr) - - def get_length(self): - count = 0 - itr = self.head - while itr: - count+=1 - itr = itr.next - - return count - - def insert_at_begining(self, data): - node = Node(data, self.head) - self.head = node - - def insert_at_end(self, data): - if self.head is None: - self.head = Node(data, None) - return - - itr = self.head - - while itr.next: - itr = itr.next - - itr.next = Node(data, None) - - def insert_at(self, index, data): - if index<0 or index>self.get_length(): - raise Exception("Invalid Index") - - if index==0: - self.insert_at_begining(data) - return - - count = 0 - itr = self.head - while itr: - if count == index - 1: - node = Node(data, itr.next) - itr.next = node - break - - itr = itr.next - count += 1 - - def remove_at(self, index): - if index<0 or index>=self.get_length(): - raise Exception("Invalid Index") - - if index==0: - self.head = self.head.next - return - - count = 0 - itr = self.head - while itr: - if count == index - 1: - itr.next = itr.next.next - break - - itr = itr.next - count+=1 - - def insert_values(self, data_list): - self.head = None - for data in data_list: - self.insert_at_end(data) - - -if __name__ == '__main__': - ll = LinkedList() - ll.insert_values(["banana","mango","grapes","orange"]) - ll.insert_at(1,"blueberry") - ll.remove_at(2) - ll.print() - - ll.insert_values([45,7,12,567,99]) - ll.insert_at_end(67) - ll.print() - pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy