C语言实现哈夫曼编码分享!

queue.cpp:

  #include "stdafx.h"  #include <stdio.h>  #include <stdlib.h>  #include "queue.h"  void initPQueue(pQueue **queue)  {   *queue = (pQueue *)malloc(sizeof(pQueue));   (*queue)->first = NULL;   (*queue)->size = 0;   return;  }  void addPQueue(pQueue **queue, TYPE val, unsigned int priority)  {   if ((*queue)->size == MAX_SZ)   {   printf("n Queue is full. n");   return;   }   pQueueNode *aux = (pQueueNode *)malloc(sizeof(pQueueNode));   aux->priority = priority;   aux->val = val;   if ((*queue)->size == 0||(*queue)->first==NULL)   {   aux->next = NULL;   (*queue)->first = aux;   (*queue)->size = 1;   return;   }   else   {   if (priority <= (*queue)->first->priority)   {    aux->next = (*queue)->first;    (*queue)->first = aux;    (*queue)->size++;    return;   }   else   {    pQueueNode *iterator = (*queue)->first;    while (iterator->next!=NULL)    {    if (priority <= iterator->next->priority)    {     aux->next = iterator->next;     iterator->next = aux;     (*queue)->size++;     return;    }    iterator = iterator->next;    }    if (iterator->next == NULL)    {    aux->next = NULL;     iterator->next = aux;    (*queue)->size++;    return;    }   }   }  }  TYPE getQueue(pQueue **queue)  {   TYPE returnValue;   if ((*queue)->size > 0)   {   returnValue = (*queue)->first->val;   (*queue)->first = (*queue)->first->next;   (*queue)->size--;   }   else   {   returnValue = NULL;   printf("n Queue is empty n");   }      return returnValue;  }

运行结果:

C语言实现哈夫曼编码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解C语言实现哈夫曼编码分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/484746.html

(0)
上一篇 2020年11月10日
下一篇 2020年11月10日

精彩推荐