public void Dispose()
 {
     RootNode.Dispose();
     NodesCounter = 0;
     PqNodeSelector.Clear();
     PqNodeSelector = null;
     NodesFrequency.Clear();
     NodesFrequency = null;
     TreeNodes.Clear();
     TreeNodes = null;
     TreePaths.Clear();
     TreePaths = null;
 }
        public void AddNode(object node)
        {
            var tNode = node as HuffmanNode;

            if (null != tNode)
            {
                TreeNodes.Add(tNode);
                NodesFrequency.Add(tNode.NodeValue, tNode.Frequincy);
            }
            else
            {
                throw new ArgumentNullException();
            }
        }