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

First Python Programme

  If you are here, then I think you are a python enthusiast. On this website, we upload daily posts on new and basic programme for beginners.  So let’s start with the first code i.e. Hello World programme. So first of all you you should know how to give print command in python. To print we write print(“Hello World”). What’s inside the small brackets will be printed. So the programme is : print("Hello World") Hello World So, as we can see above, when we implemented the print command, the thing between the small bracket is printed. So let’s see some other examples In this example, we will store an integer value in a variable. And then print the integer will the help,of that variable. So let’s get started a = 3 print(a) 3 Another example Now we will store a string into a variable and then print the string with the help of that variable #if we put hastag in front of any line in python. Then there is no effect. #for storing the string in a variable, we have to enclose the whole s...

Queues in PYTHON

  The Python Code for Queue is here :- class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.front = self.rear = None def enqueue(self, data): newnode = Node(data) newnode.next = self.rear self.rear = newnode if self.front is None: self.front = newnode def dequeue(self): temp = self.rear while temp.next is not self.front: temp = temp.next self.front = temp temp.next = None def traverse(self): temp = self.rear while temp is not None: print(temp.data, end = " --> ") temp = temp.next print("None") new = Queue() new.enqueue(4) new.enqueue(1) new.enqueue(0) new.enqueue(2) new.traverse() new.dequeue() new.traverse() new.dequeue() new.traverse() 2 --> 0 --> 1 --> 4 --> None 2 --> 0 --> 1 --> None 2 ...