Serialize And Deserialize A Given N Ary Tree 4,6/5 115 reviews
Serialize And Deserialize A Given N Ary Tree

Design an algorithm to serialize and deserialize an N-ary tree. An N-ary tree is a rooted tree in which each node has no more than N children. It is needed to distinguish between two cases: 1. Complete n-ary Trees and 2. Sparse n-ary or non-Complete Trees. In the first case, assuming.

Permalink

Join GitHub today

Deserialize

Asus p8h61 m lx lan drivers for mac pro. GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

Lg gsa 5163d driver for mac

Sign up
Branch:master
Find file Copy path
Fetching contributors…
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val,List<Node> _children) {
val = _val;
children = _children;
}
};
*/
classCodec {
// Encodes a tree to a single string.
publicStringserialize(Noderoot) {
if (root null) { return''; }
StringBuilder sb =newStringBuilder();
sb.append(root.val);
sb.append(',');
sb.append(root.children.size());
sb.append('#');
for (Node c: root.children) {
sb.append(serialize(c));
}
return sb.toString();
}
classRep {
Node n;
int end;
}
// Decodes your encoded data to tree.
publicNodedeserialize(Stringdata) {
if (data.length() 0) { returnnull; }
return parse(data, 0, data.length() -1).n;
}
privateRepparse(Stringdata, intstart, intend) {
if (start >= end) { returnnull; }
int comma = data.indexOf(',', start);
int split = data.indexOf('#', start);
int val =Integer.valueOf(data.substring(start, comma));
int childNum =Integer.valueOf(data.substring(comma +1, split));
Node n =newNode();
n.val = val;
List<Node> children =newArrayList<>();
int last = split;
for (int i =0; i < childNum; i++) {
Rep rep = parse(data, last +1, end);
last = rep.end;
children.add(rep.n);
}
n.children = children;
Rep r =newRep();
r.n = n;
r.end = last;
return r;
}
}
// Your Codec object will be instantiated and called as such:
// Codec codec = new Codec();
// codec.deserialize(codec.serialize(root));
  • Copy lines
  • Copy permalink