- 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)