w3resource

Python Linked List: Insert an item in front of a given doubly linked list

Python Linked List: Exercise-12 with Solution

Write a Python program to insert an item in front of a given doubly linked list.

Sample Solution:-

Python Code:

class Node(object):
    # Singly linked node
    def __init__(self, data=None, next=None, prev=None):
        self.data = data
        self.next = next
        self.prev = prev

class doubly_linked_list(object):
    def __init__(self):
        self.head = None
        self.tail = None
        self.count = 0

    def append_item(self, data):
        # Append an item 
        new_item = Node(data, None, None)
        if self.head is None:
            self.head = new_item
            self.tail = self.head
        else:
            new_item.prev = self.tail
            self.tail.next = new_item
            self.tail = new_item
        self.count += 1
    
    def iter(self):
        # Iterate the list
        current = self.head
        while current:
            item_val = current.data
            current = current.next
            yield item_val

    def print_foward(self):
        for node in self.iter():
            print(node)   
        
    def insert_start(self, data):        
        if self.head is not None:
            new_node = Node(data, None, None)
            new_node.next = self.head
            self.head.prev = new_node
            self.head = new_node
            self.count += 1

items = doubly_linked_list()
items.append_item('PHP')
items.append_item('Python')
items.append_item('C#')
items.append_item('C++')
items.append_item('Java')
items.append_item('SQL')

print("Original list:")
items.print_foward()
print("\nAppend item in front of the list:")
items.insert_start("Perl")
items.print_foward()

Sample Output:

Original list:
PHP
Python
C#
C++
Java
SQL

Append item in front of the list:
Perl
PHP
Python
C#
C++
Java
SQL

Flowchart:

Flowchart: Insert an item in front of a given doubly linked list.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to print a given doubly linked list in reverse order.
Next: Write a Python program to search a specific item in a given doubly linked list and return true if the item is found otherwise return false.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz


Python: Tips of the Day

Creates a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value:

Example:

def tips_map_values(obj, fn):
  ret = {}
  for key in obj.keys():
    ret[key] = fn(obj[key])
  return ret
users = {
  'Owen': { 'user': 'Owen', 'age': 29 },
  'Eddie': { 'user': 'Eddie', 'age': 15 }
}

print(tips_map_values(users, lambda u : u['age'])) # {'Owen': 29, 'Eddie': 15}

Output:

{'Owen': 29, 'Eddie': 15}