Skip to main content

Doubly Linked List in PYTHON

 Here is the Python code for the Doubly Linked List :-


#first of all creat a class node

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
        self.prev = None

#now create a class of doubly linked list

class DLL:
    def __init__(self):
        self.head = None

#function to insert the node at begining

    def insertatbeg(self, data):
        newnode = Node(data)
        newnode.prev = None
        newnode.next = self.head
        self.head = newnode

#function to insert the node at the end

    def insertatend(self, data):
        newnode = Node(data)
        if self.head is None:
            self.head = newnode
            return
        else:
            temp = self.head
            while temp.next is not None:
                temp = temp.next
            temp.next = newnode
            newnode.prev = temp.data
            newnode.next = None

#function to insert the node at a given position
# or between any two nodes

    def insertinbet(self, node, data):
        if node is None:
            print("Node is invalid.")
            return
        else:
            temp= self.head
            newnode = Node(data)
            while temp.data is not node.data:
                temp = temp.next
            newnode.next = temp.next
            newnode.prev = temp
            temp.next = newnode

#function to delete the node from a given position

    def deletenode(self, node):
        data = node.data
        while node.data is not data:
            node = node.next
        node.data = node.next.data
        node.next = node.next.next

#function to print the whole double linked list

    def traverse(self):
        temp = self.head
        while temp is not None:
            print(temp.data, end=" <==> ")
            temp = temp.next

#inserting new as an object into doubly linked list

new = DLL()

new.insertatbeg(4)
new.insertatbeg(2)
new.insertatbeg(1)

new.insertatend(5)
new.insertatend(6)

new.insertinbet(new.head.next, 3)

new.insertatbeg(0)

new.insertatend(7)

new.deletenode(new.head.next)

new.traverse()

#this will print the doubly linked list

print("None")







.................................................................................................................................................
|  0 <==> 2 <==> 3 <==> 4 <==> 5 <==> 6 <==> 7 <==> None                                          |
`````````````````````````````````````````````````````````````````````````````````````````````````````````````



So this the code for doubly linked list in python. Hope you understood the code. In the next post, we will learn about Circular Linked List. Please share it with your friends and help them learning python.




John Veer
Contact mail id - john.veer.utube@gmail.com
contact us for any query
Thanks for reading

print(" Bye! ")

www.basicpythonprogramme.blogspot.com

Comments

Popular posts from this blog

Binary Search Tree and Binary Heap in PYTHON

Here is the Python code for Binary Search Tree :- Content included:- 1.) Insertion 2.) Search Operation 3.) Deletion 4.) Minimum Node 5.) Maximum Node 6.) Preorder Traversal 7.) InOrder Traversal 8.) PostOrder Traversal class BST: def __init__(self, data): self.root = data self.left = None self.right =None def insertnode(self, data): if self.root is None: self.root = data return if self.root is data: return elif self.root > data: if self.left is not None: self.left.insertnode(data) else: self.left = BST(data) elif self.root data: if self.left is not None: self.left.searchoprn(data) else: print("Data is not present.") elif self.root self.root: if self.right: selfright = self.right.deletenode(data) ...

Bubble Sort Algorithm in PYTHON

What is Bubble Sort ? And why do we need this ? Bubble sort is the simplest algorithm to sort any array. Due to its simplicity, bubble sort is often used to introduce the concept of a sorting algorithm.  In computer graphics it is popular for its capability to detect a very small error (like swap of just two elements) in almost-sorted arrays and fix it with just linear complexity (2n). For example, it is used in a polygon filling algorithm, where bounding lines are sorted by their x coordinate at a specific scan line (a line parallel to x axis) and with incrementing y their order changes . ALGORITHM :- 1.) Firstly we have an unsorted list, which is to be sorted. 2.) Consider the first element of the list. Then compare it with the next element. 3.) If the second element is greator than the first element than swap them. 4.) If the second element is smaller than the first element, then we don't have to do anything. 5.) Going ahead, now after swap (may or may not), look for second...