6.10 数据结构 HuffmanTree的代码参考

#include<stdio.h>
#define MAX 21
typedef struct
{
    char data;
    int weig,parent,left,right;
}huffn;
typedef struct
{
    char cd[MAX];
    int start;
}huffc;
int main()
{
    huffn ht[2*MAX];
    huffc hcd[MAX],d;
    int i,k,j,f,h,r,n=0,c,m1,m2;
    printf("请输入元素(1->%d:",MAX-1);
    scanf("%d",&n);
    if(n>MAX-1||n<1)
        return 1;
    for(i=0;i<n;i++)
    {
        fflush(stdin);
        printf("第%d个元素->\n\t结点值:",i+1);
        scanf("%c",&ht[i].data);
        printf("权重");
        scanf("%d",&ht[i].weig);
    }
    for(i=0;i<2*n-1;i++)
        ht[i].parent=ht[i].left=ht[i].right=0;
    for(i=n;i<2*n-1;i++)
    {
        m1=m2=0x7fff;
        j=r=0;
        for(k=0;k<i;k++)
            if(ht[k].parent==0)
                if(ht[k].weig<m1){
                    m2=m1;
                    r=j;
                    m1=ht[k].weig;
                    j=k;
                }
                else if(ht[k].weig<m2){
                    m2=ht[k].weig;
                    r=k;
                }
                ht[j].parent=i;
                ht[r].parent=i;
                ht[i].weig=ht[j].weig+ht[r].weig;
                ht[i].left=j;
                ht[i].right=r;
    }
    for(i=0;i<n;i++)
    {
        d.start=n;
        c=i;
        f=ht[i].parent;
        while(f!=0)
        {
            if(ht[f].left==c)
            d.cd[--d.start]='0';
            else
            d.cd[--d.start]='1';
            c=f;f=ht[f].parent;
        }
        hcd[i]=d;
    }
    printf("输出huffman编码:\n");
    for(i=0;i<n;i++)
    {
        printf("%c",ht[i].data);
        for(k=hcd[i].start;k<n;k++)
        printf("%c",hcd[i].cd[k]);
        printf("\n");
    }
}

 

转载于:https://www.cnblogs.com/huangjiaxin/p/11002773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KepServerEX 6.10是一款领先的工业自动化通讯服务器软件。它可以与各种设备、控制器和系统进行通讯,并提供数据采集、监控和控制功能。 KepServerEX 6.10具有以下特点和优势: 1. 多种通讯协议支持:KepServerEX 6.10支持众多通讯协议,如OPC、Modbus、SNMP、DNP3等,可以与不同设备进行无缝通讯,实现数据的采集和交换。 2. 高度可扩展性:该软件具有高度可扩展性,可以支持从几个设备到数千个设备的连接,满足不同规模的工业自动化系统需求。 3. 可视化操作界面:KepServerEX 6.10提供直观的可视化操作界面,使用户可以方便地配置和管理通讯服务器,快速建立设备连接和数据传输。 4. 安全性和数据完整性保护:该软件采用最新的安全技术,包括加密和身份验证等,确保通讯过程中数据的安全和完整性。 5. 数据处理和分发功能:KepServerEX 6.10可以进行数据处理和分发,包括数据过滤、数据转换、数据聚合等功能,使得工程师和运维人员可以轻松地进行数据分析和决策。 总结来说,KepServerEX 6.10是一款功能强大的工业自动化通讯服务器软件,它能够支持多种通讯协议,具有高度可扩展性,提供安全的数据传输和处理功能,能够满足不同规模工业自动化系统的需求。使用KepServerEX 6.10可以简化设备的集成和通讯过程,提高系统的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值