コード例 #1
0
ファイル: HuffmanEncoding.cs プロジェクト: nofuture-git/31g
        internal void BuildTree()
        {
            Debug.WriteLine($"{DateTime.Now:yyyy-MM-dd hh:mm:ss.fffff} {nameof(HuffmanEncoding)} Start BuildTree");
            HuffmanNode nextNode;

            do
            {
                nextNode = GetNextTreeNode();
                _nodes.Remove(nextNode.Left);
                _nodes.Remove(nextNode.Right);
                _nodes.Add(nextNode);
            } while (nextNode.Count < _totalSum);

            _rootNode = nextNode;
            Debug.WriteLine($"{DateTime.Now:yyyy-MM-dd hh:mm:ss.fffff} {nameof(HuffmanEncoding)} End BuildTree");
        }
コード例 #2
0
ファイル: HuffmanEncoding.cs プロジェクト: nofuture-git/31g
        internal static List <HuffmanNode> GetLeafs(HuffmanNode n, List <HuffmanNode> nodes)
        {
            if (n == null)
            {
                return(nodes);
            }
            if (n.IsLeaf)
            {
                nodes.Add(n);
                return(nodes);
            }

            GetLeafs(n.Left, nodes);
            GetLeafs(n.Right, nodes);
            return(nodes);
        }