64,646
社区成员
发帖
与我相关
我的任务
分享
if(!in.eof())
{
do {
in.get(c);
if(in.eof())break;
unsigned long k=(pcode<<ByteSize)+c;
if(pcode==0||c==0)////这里是书上没有的,得加上对0的处理
{
Output(pcode);
pcode=c;
}
else if(h.Search(k,e))pcode=e.code;
else
{
Output(pcode);
if(used<codes)
{
e.code=used++;
e.key=(pcode<<ByteSize)|c;
h.Insert(e);
}
pcode=c;
}
} while(true);
Output(pcode);
if(status){ c=LeftOver<<excess; out.put(c);}
}