数据结构c语言版 串的块链存储表示和实现

数据结构c语言版 串的块链存储表示和实现

ID:14197146

大小:49.00 KB

页数:20页

时间:2018-07-26

数据结构c语言版 串的块链存储表示和实现_第1页
数据结构c语言版 串的块链存储表示和实现_第2页
数据结构c语言版 串的块链存储表示和实现_第3页
数据结构c语言版 串的块链存储表示和实现_第4页
数据结构c语言版 串的块链存储表示和实现_第5页
资源描述:

《数据结构c语言版 串的块链存储表示和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构C语言版串的块链存储表示和实现祸兮福之所倚,福兮祸之所伏。千淘万漉虽辛苦,吹尽狂沙始到金。二十四桥明月夜,玉人何处教吹箫。眼前道路无经纬,皮里春秋空黑黄。/*数据结构C语言版串的块链存储表示和实现P78编译环境:Dev-C++4.9.9.2日期:2011年2月12日*/#include#include#include#include//LString.h串的块链存储表示#defineCHUNKSIZE4//可由用户定义的

2、块大小typedefstructChunk{charch[CHUNKSIZE];//块的数据域structChunk*next;//块的指针域}Chunk;typedefstruct{Chunk*head,//串的头指针*tail;//串的尾指针intcurlen;//串的当前长度}LString;charblank='#';//全局变量,用于填补空余//初始化(产生空串)字符串T。voidInitString(LString*T){(*T).curlen=0;(*T).head=NULL;(*T).ta

3、il=NULL;}//生成一个其值等于chars的串T(要求chars中不包含填补空余的字符)//成功返回1,否则返回0intStrAssign(LString*T,char*chars){inti,j,k,l;Chunk*p,*q;i=strlen(chars);//i为串的长度if(!i

4、

5、strchr(chars,blank))//串长为0或chars中包含填补空余的字符return0;(*T).curlen=i;j=i/CHUNKSIZE;//j为块链的结点数,块的个数if(i%CHUNKSIZE

6、)//不足一个块的,当成一个块即块数加1j++;for(k=0;knext=p;q=p;}for(l=0;lch+l)=*chars++;if(!*chars)//最后一个链块{(*T).tail=q;q->next=NULL;for(;l

7、/用填补空余的字符(blank=‘#’)填满链表*(q->ch+l)=blank;}}return1;}//由串S复制得串T(连填补空余的字符一块拷贝)intStrCopy(LString*T,LStringS){Chunk*h=S.head,*p,*q;(*T).curlen=S.curlen;if(h){p=(*T).head=(Chunk*)malloc(sizeof(Chunk));*p=*h;//复制1个结点h=h->next;while(h)//没到队尾,继续复制块{q=p;p=(Chunk*

8、)malloc(sizeof(Chunk));q->next=p;*p=*h;h=h->next;}p->next=NULL;(*T).tail=p;return1;}elsereturn0;}//若S为空串,则返回1,否则返回0intStrEmpty(LStringS){if(S.curlen)//非空return0;elsereturn1;}//若S>T,则返回值>0;若S=T,则返回值=0;若S

9、当前待比较字符在S,T串中的位置Chunk*ps=S.head,*pt=T.head;//ps,pt分别指向S和T的待比较块intjs=0,jt=0;//js,jt分别指示S和T的待比较字符在块中的位序while(ich+js)==blank)//跳过填补空余的字符{js++;if(js==CHUNKSIZE){ps=ps->next;js=0;}};//*(ps->ch+js)为S的第i个有效字符w

10、hile(*(pt->ch+jt)==blank)//跳过填补空余的字符{jt++;if(jt==CHUNKSIZE){pt=pt->next;jt=0;}};//*(pt->ch+jt)为T的第i个有效字符if(*(ps->ch+js)!=*(pt->ch+jt))return*(ps->ch+js)-*(pt->ch+jt);else//继续比较下一个字符{js++;if(js==CHUNKSIZE){ps=ps->nex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。