Advertisement
halaluddin

problem-47

May 20th, 2019
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.20 KB | None | 0 0
  1. class Node:
  2.     def __init__(self, data=None, prev=None, next=None):#None node
  3.         self.data, self.prev, self.next = data, prev, next
  4.  
  5.     def __repr__(self):
  6.         return repr(self.data)
  7.  
  8. class Sorted:
  9.     def __init__(self):
  10.         self.head = Node()
  11.  
  12.     def Result(self):
  13.         nodes = []
  14.         current_node = self.head.next
  15.  
  16.         while current_node:
  17.             nodes.append(current_node.data)
  18.             current_node = current_node.next
  19.         return nodes
  20.  
  21.  
  22.     def prepend(self, item):
  23.         node = Node(item, None, self.head.next)
  24.         self.head.next = node
  25.  
  26.     def insert(self, item):
  27.         node = Node(item)
  28.         previous_node = self.head
  29.         current_node = previous_node.next
  30.  
  31.         if previous_node.next == None:#if, previous_node.next is None then item is first node
  32.             self.head.next = node
  33.            
  34.             return
  35.  
  36.         if current_node.data >= item:#if, the first node is greater than of item.
  37.             current_node.prev = node
  38.             previous_node.next = node
  39.             node.prev = previous_node
  40.             node.next = current_node
  41.            
  42.             return
  43.  
  44.         while current_node.next:
  45.             previous_node = current_node
  46.             current_node = current_node.next
  47.             if current_node.data >= item:
  48.                 current_node.prev = node
  49.                 previous_node.next = node
  50.                 node.prev = previous_node
  51.                 node.next = current_node
  52.                
  53.                 return
  54.  
  55.         current_node.next = node
  56.         node.prev = current_node
  57.  
  58.        
  59. if __name__ == '__main__':
  60.     t = int(input())
  61.     for _ in range(t):
  62.         o = Sorted()
  63.         n1 = int(input())
  64.         li1 = [int(input()) for _ in range(n1)]
  65.         for item in li1[::-1]:
  66.             o.prepend(item)
  67.         n2 = int(input())
  68.         li2 = [int(input()) for _ in range(n2)]
  69.         for item in li2:
  70.             o.insert(item)
  71.         Sorted_list = o.Result()
  72.         length = len(Sorted_list)
  73.         for i in range(length):
  74.             if i != length-1:
  75.                 print(Sorted_list[i], end=' ')
  76.             else:
  77.                 print(Sorted_list[i])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement