예제 #1
0
 private HuffmanTree(HuffmanTree node_left, HuffmanTree node_right, HuffmanTree parent, int weight, char value)
 {
     this.node_left = node_left;
     this.node_right = node_right;
     this.parent = parent;
     this.weight = weight;
     this.value = value;
 }
예제 #2
0
        static void Main(string[] args)
        {
            HuffmanTree tree = new HuffmanTree();

            tree.createTree("j'aime aller sur le bord de l'eau les jeudis ou les jours impairs");

            return;
        }
예제 #3
0
        private HuffmanTree fillTree(PriorityQueue <HuffmanTree> _eQueue)
        {
            while (_eQueue.count > 1)
            {
                HuffmanTree node1 = _eQueue.Dequeue();
                HuffmanTree node2 = _eQueue.Dequeue();

                HuffmanTree parent = new HuffmanTree();

                parent.node_left  = node1;
                parent.node_right = node2;
                node1.parent      = parent;
                node2.parent      = parent;

                parent.weight = node1.weight + node2.weight;

                _eQueue.Enqueue(parent, parent.weight);
            }

            Console.WriteLine("done");

            return(_eQueue.Dequeue());
        }
예제 #4
0
        private HuffmanTree fillTree(PriorityQueue<HuffmanTree> _eQueue)
        {
            while(_eQueue.count> 1)
            {
                HuffmanTree node1 = _eQueue.Dequeue();
                HuffmanTree node2 = _eQueue.Dequeue();

                HuffmanTree parent = new HuffmanTree();

                parent.node_left = node1;
                parent.node_right = node2;
                node1.parent = parent;
                node2.parent = parent;

                parent.weight = node1.weight + node2.weight;

                _eQueue.Enqueue(parent, parent.weight);
            }

            Console.WriteLine("done");

            return _eQueue.Dequeue();
        }