Edclll 2023-05-27 11:20 采纳率: 0%
浏览 12

哈夫曼编码的构造,使用的链表存储,另外设置了一个头指针的结构体类型,运行结果如下求解

img


这是构造哈夫曼编码的代码

img


这是输出的代码

img


这个是定义的两个结构体的代码

img


程序运行输出的代码
应该是构造编码和输出出了问题,已经看好久了还是没能解决求解

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-27 14:25
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/667169
    • 这篇博客也不错, 你可以看下【数据结构】二叉树的顺序结构及实现,堆,向上调整算法,向下调整算法,数组建堆算法,堆排序
    • 除此之外, 这篇博客: 数据结构——详解图的深度优先遍历和广度优先遍历及代码实现中的 在完成深度优先遍历之前,我们首先需要对图进行初始化工作,这儿的图是从文件中直接读取的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • template<class DataType>
      class MGraph
      {
      public:
          MGraph();
          ~MGraph(){}
          void DFSTraverse(int v);
          void BFSTraverse(int v);
      	int vertexNum,arcNum;//图的顶点数和边数
      	DataType vertex[MaxSize];//顶点
      private:
          int arc[MaxSize][MaxSize];//图的边长
      	bool DFSvisited[MaxSize];//定义一个DFS遍历过标记
      	bool BFSvisited[MaxSize];//定义一个BFS遍历过标记
      };
      template<class DataType>//构造函数
      MGraph<DataType>::MGraph()
      {
      	int i,j;
      	fstream fcin_vertex;
      	fcin_vertex.open("vertex.txt",ios::in);//打开一个文件用于从文件输入顶点
      	vertexNum=0,arcNum=0;//令顶点数、边数赋值为0
          while(!fcin_vertex.eof())
      		fcin_vertex>>vertex[vertexNum++];
      	fcin_vertex.close();
      	memset(DFSvisited,0,sizeof(DFSvisited));//这个函数用来给DFSvisited数组所有成员赋0
      	memset(BFSvisited,0,sizeof(BFSvisited));
          for(i=0;i<vertexNum;i++)
              for(j=0;j<vertexNum;j++)
      		{
      			if(i==j)
      				arc[i][j]=0;//如果是相同顶点,则初始化为0
      			else
      				arc[i][j]=MAX;//否则将边长初始化为MAX;
      		}
      	fstream fcin_arc;
      	fcin_arc.open("arc.txt",ios::in);//打开一个文件用于从文件输入边
      	i=0,j=0;
      	while(i!=-1)
      	{
      		fcin_arc>>i;
      		if(i==-1)
      			continue;
      		else
      		{
      			fcin_arc>>j;
      			if(arc[i][j]==0||arc[i][j]==MAX)//如果这条边等于0或者等于MAX,说明这条边还没被修改过,这时候修改一次,边数+1,
      				                            //否则,则说明这条边已经被修改过,再修改边数也不会增加
      				arcNum++;
      			fcin_arc>>arc[i][j];
      			arc[j][i]=arc[i][j];//由于是无向图,i到j的距离等于j到i的距离
      		}
      	}
      	fcin_arc.close();
      }
      
    • 您还可以看一下 李月喜老师的企业微信开发自建内部应用开发篇课程中的 开发文档如何阅读,如何寻求帮助,如何找到同行小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      抱歉,这些参考资料中没有与“构造哈夫曼编码和输出正常结果”相关的内容,无法给出具体的解决方案。建议提供更多问题细节以及您的代码和数据结构/算法实现方式,这样才能更好地帮助您解决问题。谢谢理解。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月27日