单链表格逆置.docVIP

  • 3
  • 0
  • 约4.48千字
  • 约 10页
  • 2019-04-10 发布于江苏
  • 举报
单链表逆置 void invert(linklist*head) { linklist*p,*q; p=head-next; head-next=NULL; while(p!=NULL) // 课后每人画图分析此题 { q=p-next; p-next=head-next; head-next=p; p=q; } } 顺序表逆置 void invert(sequenlist*L) { int i=1; char temp; while(iL-last-i+1) //将头尾元素进行交换 { temp=L-data[i]; L-data[i]=L-data[L-last-i+1]; L-data[L-last-i+1]=temp; i++; } } //添加按字母、数字、其它字符分解单链表算法 void resolve(linklist *head,linklist *letter,linklist *digit,linklist *other) { linklist *p,*phead; p=head-next; while(p!=NULL) { phead=p-next; if(p-data47p-data58) { p-next=digit-next; digit-next=p; } else if((p-data64p-data91)||(p-data96p-data123)) { p-next=letter-next; letter-next=p; } else { p-next=other-next; other-next=p; } p=phead; } } //添加判字符串是否中心对称算法 symmetry(linklist *head,stack *s) { char c; int i,n=0; linklist *p=head-next; if((length(head)!=0)(length(head)%2==0)) { for(i=1;i=(length(head)/2);i++) {push(s,p-data); p=p-next; } c=pop(s); for(i=1;i=length(head)/2;i++) { if(p-data==c) { c=pop(s); p=p-next; n=1; } else {n=0; break; } } if(n==1) return(1); else return(0); } else return(0); } 删除子串 void strDelete(seqstring *S,int i,int m) { int n; if((i-1+m=S-len)(i0)(i=S-len)) { for(n=0;n=(S-len-i-m+1);n++) S-str[i-1+n]=S-str[i+m+n-1]; S-len=S-len-m; } else printf(overflow); } //添加顺序串的朴素模式匹配算法 int Index(seqstring *S,seqstring *subs) { int i,n,s; if(S-len=subs-len) { for(i=0;i=(S-len-subs-len);i++) { if(S-str[i]==subs-str[0]) { s=1; for(n=1;nsubs-len;n++) { if(S-str[i+n]==subs-str[n]) s++; else break; } if(s==subs-len) return(i+1); } } return(0); } else { printf(overflow); return(0); } } 添加对称矩阵相乘代码 void mult(array*pa) {int i,j,k,s,t,f; for(i=0;in;i++) { for(j=0;jn;j++) { s=0; for(k=0;kn;k++) { if(i=k) f=i*(i+1)/2+k; else f=k*(k+1)/2+i; if(j=k) t=j*(j+1)/2+k; else t=

文档评论(0)

1亿VIP精品文档

相关文档