⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func6-2.cpp

📁 数据结构相关代码
💻 CPP
字号:
 // func6-2.cpp 程序algo6-1.cpp和algo6-2.cpp要调用的2个函数
 #define Order // 定义Order。第2行
 int min(HuffmanTree t,int i)
 { // 返回赫夫曼树t的前i个结点中权值最小的树的根结点序号,函数select()调用
   int j,m;
   unsigned int k=UINT_MAX; // k存最小权值,初值取为不小于可能的值(无符号整型最大值)
   for(j=1;j<=i;j++) // 对于前i个结点
     if(t[j].weight<k&&t[j].parent==0) // t[j]的权值小于k,又是树的根结点
     { k=t[j].weight; // t[j]的权值赋给k
       m=j; // 序号赋给m
     }
   t[m].parent=1; // 给选中的根结点的双亲赋非零值,避免第2次查找该结点
   return m; // 返回权值最小的根结点的序号
 }

 void select(HuffmanTree t,int i,int &s1,int &s2)
 { // 在赫夫曼树t的前i个结点中选择2个权值最小的树的根结点序号,s1为其中序号(权值)较小的
 #ifdef Order // 如果在主程中定义了Order,则以下语句起作用
   int j;
 #endif
   s1=min(t,i); // 权值最小的根结点序号
   s2=min(t,i); // 权值第2小的根结点序号
 #ifdef Order // 如果在主程中定义了Order,则执行下面一段程序
   if(s1>s2) // s1的序号大于s2的
   { // 交换
     j=s1;
     s1=s2; // s1是权值最小的2个中序号较小的
     s2=j; // s2是权值最小的2个中序号较小的
   }
 #endif
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -