第一范文网 - 专业文章范例文档资料分享平台

唯一可译码判决准则代码

来源:用户分享 时间:2020-06-20 本文由南葵思暖 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#include #include #include

struct strings {

char *string; struct strings *next; };

struct strings Fstr, *Fh, *FP;

//输出当前集合

void outputstr(strings *str) {

do {

cout<string<next;

}while(str); cout<

}

inline int MIN(int a, int b) { return a>b?b:a; }

inline int MAX(int a, int b) { return a>b?a:b; }

#define length_a (strlen(CP))

#define length_b (strlen(tempPtr))

//判断一个码是否在一个码集合中,在则返回0,不在返回1 int comparing(strings *st_string,char *code) { }

while(st_string->next) { } return 1;

st_string=st_string->next;

if(!strcmp(st_string->string,code))

return 0;

//判断两个码字是否一个是另一个的前缀,如果是则生成后缀码 void houzhui(char *CP,char *tempPtr) { if (!strcmp(CP,tempPtr)) { cout<<\集合C和集合F中有相同码字:\ }

}

if (!strncmp(CP, tempPtr, MIN(length_a,length_b))) { }

struct strings *cp_temp; cp_temp=new (struct strings); cp_temp->next=NULL;

cp_temp->string=new char[abs(length_a-length_b)+1]; char *longstr;

longstr=(length_a>length_b ? CP : tempPtr);//将长度长的码赋给longstr //取出后缀

for (int k=MIN(length_a,length_b); kstring[k - MIN(length_a,length_b)]=longstr[k];

cp_temp->string[abs(length_a-length_b)]=NULL;

//判断新生成的后缀码是否已在集合F里,不在则加入F集合 if(comparing(Fh,cp_temp->string)) { FP->next=cp_temp; }

FP=FP->next;

<

void main()

{

//功能提示和程序初始化准备 cout<<\唯一可译码的判断!\\n\

struct strings Cstr, *Ch, *CP,*tempPtr; Ch=&Cstr; CP=Ch; Fh=&Fstr; FP=Fh;

char c[]=\

Ch->string=new char[strlen(c)]; strcpy(Ch->string, c); Ch->next=NULL; char f[]=\

Fh->string=new char[strlen(f)]; strcpy(Fh->string, f); Fh->next=NULL;

//输入待检测码的个数

int Cnum;

cout<<\输入待检测码的个数:\cin>>Cnum;

cout<<\输入待检测码\

for(int i=0; i

char tempstr[10]; cin>>tempstr;

CP->next=new (struct strings); CP=CP->next;

CP->string=new char[strlen(tempstr)] ; strcpy(CP->string, tempstr); CP->next = NULL;

}

outputstr(Ch);

CP=Ch;

while(CP->next->next) {

CP=CP->next; tempPtr=CP; do {

tempPtr=tempPtr->next;

houzhui(CP->string,tempPtr->string); }while(tempPtr->next);

}

outputstr(Fh);

struct strings *Fbegin,*Fend; Fend=Fh;

while(1) {

if(Fend == FP) { cout<<\是唯一可译码码组!\ }

Fbegin=Fend; Fend=FP; CP=Ch; while(CP->next)

exit(1);

{

CP=CP->next; } }

tempPtr=Fbegin; for(;;) {

tempPtr=tempPtr->next;

houzhui(CP->string,tempPtr->string); if(tempPtr == Fend)

break;

} }

outputstr(Fh);//输出F集合中全部元素

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新医药卫生唯一可译码判决准则代码 全文阅读和word下载服务。

唯一可译码判决准则代码 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1088827.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top