public bool GetSelector(CompNodeBase subNode) { int idx = Array.IndexOf(SubNodes, subNode); if (idx == -1) { throw new Exception("Not the right parent node."); } return(idx == 0 ? true : false); }
public byte[] DecodeTree(CompNode tree, bool[] data) { List <byte> result = new List <byte>(); CompNode selectedNode = tree; foreach (bool singleBit in data) { CompNodeBase currentNode = selectedNode.Next(singleBit); if (currentNode is CompNodeValue vNode) { result.Add(vNode.Value); selectedNode = tree; } else { selectedNode = currentNode as CompNode; } } return(result.ToArray()); }