Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, data=None, prev=None, next=None):#None node
- self.data, self.prev, self.next = data, prev, next
- def __repr__(self):
- return repr(self.data)
- class Sorted:
- def __init__(self):
- self.head = Node()
- def Result(self):
- nodes = []
- current_node = self.head.next
- while current_node:
- nodes.append(current_node.data)
- current_node = current_node.next
- return nodes
- def prepend(self, item):
- node = Node(item, None, self.head.next)
- self.head.next = node
- def insert(self, item):
- node = Node(item)
- previous_node = self.head
- current_node = previous_node.next
- if previous_node.next == None:#if, previous_node.next is None then item is first node
- self.head.next = node
- return
- if current_node.data >= item:#if, the first node is greater than of item.
- current_node.prev = node
- previous_node.next = node
- node.prev = previous_node
- node.next = current_node
- return
- while current_node.next:
- previous_node = current_node
- current_node = current_node.next
- if current_node.data >= item:
- current_node.prev = node
- previous_node.next = node
- node.prev = previous_node
- node.next = current_node
- return
- current_node.next = node
- node.prev = current_node
- if __name__ == '__main__':
- t = int(input())
- for _ in range(t):
- o = Sorted()
- n1 = int(input())
- li1 = [int(input()) for _ in range(n1)]
- for item in li1[::-1]:
- o.prepend(item)
- n2 = int(input())
- li2 = [int(input()) for _ in range(n2)]
- for item in li2:
- o.insert(item)
- Sorted_list = o.Result()
- length = len(Sorted_list)
- for i in range(length):
- if i != length-1:
- print(Sorted_list[i], end=' ')
- else:
- print(Sorted_list[i])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement