From 02033182765e9d2cb20827f8639804b451d46800 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 15 May 2022 18:15:37 +0200 Subject: [PATCH] feat: implement backend for import/export Related to #2 Signed-off-by: Matej Focko --- node.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/node.js b/node.js index ae22b08..45daf0f 100644 --- a/node.js +++ b/node.js @@ -130,6 +130,40 @@ function nodeMaximum(node) { return node; } +function nodeExport(node) { + if (!node) { + return null; + } + + return { + value: node.value, + rank: node.rank, + left: nodeExport(node.left), + right: nodeExport(node.right), + }; +} + +function nodeImport(json) { + if (!json) { + return null; + } + + let node = new Node(json.value); + node.rank = json.rank; + + if (json.left) { + node.left = nodeImport(json.left); + node.left.parent = node; + } + + if (json.right) { + node.right = nodeImport(json.right); + node.right.parent = node; + } + + return node; +} + class Node { constructor(value, left, right, parent) { this.value = value;