Serialize and Deserialize a Binary Tree || Program 44 || Competitive Coding || Learning Monkey ||
Serialize and Deserialize a Binary Tree
In this class, We discuss Serialize and Deserialize a Binary Tree.
Readers can prepare a full competitive coding course to crack product development companies. Click Here.
The reader should have basic coding skills to work with competitive coding. Click here.
Question:
Given a binary tree.
Our task is to serialize and deserialize a binary tree.
Serialize: To convert the binary tree to the array.
Deserialize: To convert the array to a binary tree.
The structure of the binary tree should be maintained.
Example:
The below diagram shows the serialization and deserialization of the binary tree.
Time complexity: O(N)
Space complexity: O(N)
We discussed the array representation of binary trees at heap data structure.
The space complexity required is O(2^h).
In this example, we need a space complexity of O(N).
Logic:
We use preorder traversal to serialize the binary tree.
We use the same preorder traversal to deserialize.
The step-by-step explanation is provided in the video.
Code:
class Node:
# Constructor to create a new node
def __init__(self, val):
self.data = val
self.left = None
self.right = None
def serialize(root, A):
#code here
if root is None:
A.append(-1)
return
A.append(root.data)
serialize(root.left, A)
serialize(root.right, A)
def deSerialize(A):
#code here
if len(A) == 0:
return None
val = A.pop(0)
if val == -1:
return None
root = Node(val)
root.left = deSerialize(A)
root.right = deSerialize(A)
return root
if __name__ == '__main__':
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
root.right.right = Node(7)
root.right.left.right = Node(8)
root.right.right.right = Node(9)
print("serialize and deserialize")
A=[]
serialize(root,A)
print(A)
Link for playlists:
https://www.youtube.com/channel/UCl8x4Pn9Mnh_C1fue-Yndig/playlists
Link for our website: https://learningmonkey.in
Follow us on Facebook @ https://www.facebook.com/learningmonkey
Follow us on Instagram @ https://www.instagram.com/learningmonkey1/
Follow us on Twitter @ https://twitter.com/_learningmonkey
Mail us @ [email protected]
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Serialize and Deserialize a Binary Tree || Program 44 || Competitive Coding || Learning Monkey ||», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.