Ejemplo n.º 1
0
        //entering values in map inside nodes and arranging those nodes in Priority queue with smallest frequencies in front

        PQueue.PriorityQueue nodesinQueue(Dictionary <char, int> Dic)
        {
            PQueue.cNode         node   = new PQueue.cNode();         //node created
            PQueue.PriorityQueue pQueue = new PQueue.PriorityQueue(); //queue created
            foreach (KeyValuePair <char, int> kvp in Dic)             //reading from frequency dictionary
            {
                node.value     = kvp.Key;
                node.frequency = kvp.Value;      //setting the values of node
                pQueue.insertWithPriority(node); //entering the node
                node = new PQueue.cNode();
            }
            return(pQueue);
        }
Ejemplo n.º 2
0
        //building the tree
        PQueue.cNode HuffmanEncoding(PQueue.PriorityQueue pQueue)
        {
            int n = pQueue.count;

            while (n != 1)
            {
                PQueue.cNode node = new PQueue.cNode();

                node.leftZero  = pQueue.remove();
                node.rightOne  = pQueue.remove();
                node.frequency = node.leftZero.frequency + node.rightOne.frequency;
                node.value     = 'a';
                pQueue.insertWithPriority(node);
                pQueue.print();
                Console.WriteLine("Inserted");
                n = pQueue.count;
            }
            return(pQueue.Top());
        }