PTA 串的算法设计 4 求某链串的子串算法
作者 张鏖烽单位 湖南工程学院设计一个算法求链串s的子串Sub_LinkStr(LinkString *s,int i, int j);函数接口定义LinkString * Sub_LinkStr(LinkString *s,int i, int j);//求链串s的子串子串存在则输出子串否则输出空串其中i和j分别为子串的开始位置和长度裁判测试程序样例#includestdio.h #includemalloc.h #includestdbool.h #define MaxSize 100 typedef struct Node{ char data; struct Node *next; }LinkString; void Init_LinkStr(LinkString *s)//初始化链串 { s(LinkString *)malloc(sizeof(LinkString)); s-nextNULL; } int Length_LinkStr(LinkString *s)//求链串的长度 { LinkString *ps-next; int n0; while(p!NULL) { n; pp-next; } return n; } void Create_LinkStr(LinkString *s,char cstr[])//创建链串s { LinkString *p,*r; int i0; rs; while(cstr[i]!\0) { p(LinkString *)malloc(sizeof(LinkString)); p-datacstr[i]; r-nextp; rp; i; } r-nextNULL; } void display_LinkStr(LinkString *s) { LinkString *ps-next; while(p!NULL) { printf(%c,p-data); pp-next; } } LinkString * Sub_LinkStr(LinkString *s,int i,int j); int main() { LinkString *s,*Str; char cstr[MaxSize]; int i,j; Init_LinkStr(s); scanf(%s,cstr); Create_LinkStr(s,cstr); scanf(%d%d,i,j); StrSub_LinkStr(s,i,j); if(Str-nextNULL) printf(求子串失败输出空串); else display_LinkStr(Str); return 0; } /* 请在这里填写答案 */输入样例在这里给出一组输入。例如第1行串s第2行子串的位置信息i和jabcdefghij 3 5输出样例在这里给出相应的输出。例如cdefg参考代码LinkString*Sub_LinkStr(LinkString*s,int i,int j){ int lenLength_LinkStr(s); if(i1||ilen||j0||(ij-1)len){ LinkString*e(LinkString*)malloc(sizeof(LinkString)); e-nextNULL; return e; } LinkString*re(LinkString*)malloc(sizeof(LinkString)); re-nextNULL; LinkString*rre; LinkString*ps-next; for(int k1;ki;k) pp-next; for(int k0;kj;k){ LinkString*node(LinkString*)malloc(sizeof(LinkString)); node-datap-data; node-nextNULL; r-nextnode; rnode; pp-next; } return re; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2408710.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!