数据结构实验15答案Word文档格式.docx
- 文档编号:18851729
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:14
- 大小:17.53KB
数据结构实验15答案Word文档格式.docx
《数据结构实验15答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验15答案Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
s->
data=c;
next=L->
next;
L->
next=s;
}
elseflag=0;
}
Node*get(LinkListL,inti)/*查找*/
intj;
Node*p;
if(i<
=0)returnNULL;
p=L;
j=0;
while((p->
next!
=NULL)&
&
(j<
i))
p=p->
j++;
if(i==j)returnp;
elsereturnNULL;
intListLength(LinkListL)/*求长度*/
p=L->
while(p!
=NULL)
p=p->
next;
returnj;
intDelList(LinkListL,inti,char*e)/*删除*/
Node*pre,*r;
intk;
pre=L;
k=0;
while(pre->
=NULL&
k<
i-1)
pre=pre->
k=k+1;
if(!
(pre->
next))
printf("
删除结点的位置i不合理!
"
returnERROR;
r=pre->
pre->
next=pre->
next->
e=r->
data;
free(r);
returnOK;
main()
inti;
char*e=0,m=0;
LinkListL;
InitList(&
L);
CreateFromHead(L);
i=ListLength(L);
输入要删除的结点\n"
scanf("
%d"
&
i);
DelList(L,i,e);
输入要提取的结点\n"
p=get(L,i);
长度为%d\n"
i);
结点=%c"
p->
data);
2、堆栈设计,要求:
(1)设计顺序堆栈,堆栈的操作包括:
初始化,非空否,入栈,取栈顶数据元素。
(2)设计一个主函数对顺序堆栈进行测试。
#defineM50
#defineFALSE-1
#defineTRUE1
typedefstructstack
intelem[M];
inttop;
}SeqStack;
voidInitStack(SeqStack*s)
s->
top=-1;
intpush(SeqStack*s,intx)
if(s->
top==M-1)
return(FALSE);
s->
top++;
elem[s->
top]=x;
return(TRUE);
intGetTop(SeqStack*s,intx)
top==-1)
else
x=s->
top];
return(x);
voidmain()
intm,p;
SeqStacks;
InitStack(&
s);
输入数据,输入0结束"
while(m)
scanf("
m);
push(&
s,m);
printf("
取栈顶数据元素输入1,否则输入0"
if(m==1)
p=GetTop(&
栈顶数据元素%d"
p);
上机实验3:
编写一个函数,完成字符串S1寻找子字符串S2
(匹配),并编写主函数测试所编写程序。
conio.h>
#defineMaxSize100
typedefstruct//定义串
charstr[MaxSize];
intlen;
}String;
voidDisplay(String*s)//显示s串
\n"
for(i=0;
i<
s->
len;
i++)
%c"
s->
str[i]);
voidStrDelete(String*s,inti,intk)/*删掉s串中位置i开始的k个字符*/
if(i>
len||i+k>
len)
位置参数值错误\n"
else
{
for(j=i+k;
j<
j++)/*将s的第i+k个位置之后的字串前移k位*/
str[j-k]=s->
str[j];
s->
len=s->
len-k;
/*修改s长度*/
str[s->
len]='
\0'
;
}
}
StrIndex(Strings,Stringt)/*求s串中t子串的位置(从0开始)*/
inti=0,j=0;
while(i<
s.len&
j<
t.len)
if(s.str[i]==t.str[j])
i++;
j++;
else
i=i-j+1;
j=0;
if(j==t.len)
子串是"
for(i=0;
t.len;
printf("
t.str[i]);
子串不存在"
voidStrInsert(String*s,inti,Stringt)/*s串中位置i处插入t串*/
{
Stringr;
for(j=i;
j++)/*将s的第i个位置之后的字串复制到r中*/
r.str[j-i]=s->
r.len=j-i;
r.str[r.len]='
for(j=0;
j++)/*将t串连接到s的第i个字符之后*/
str[i+j]=t.str[j];
for(j=0;
r.len;
j++)/*将r串连接到s串之后*/
str[i+t.len+j]=r.str[j];
len+t.len;
/*修改s串长度*/
voidStrAssign(String*s,chart[])/*s串内容由t串内容代替*/
inti=0;
while(t[i]!
str[i]=t[i];
i++;
str[i]='
len=i;
Stringa,b;
charc[20];
请输入字串s1\n"
scanf("
%s"
c);
StrAssign(&
a,c);
a.len=20;
请输入三位数字串s2\n"
b,c);
b.len=3;
StrIndex(a,b);
Display(&
a);
b);
getch();
上机实验4:
设矩阵A、B、C为压缩存储方式的n阶上3角矩阵,矩阵元素为整数,要求:
(1)编写实现矩阵加C=A+B的函数;
(2)编写实现C=A*B的函数;
编写主程序测试
time.h>
stdlib.h>
#defineMAXSIZE100/*非零元素的个数最多为100*/
/*稀疏矩阵三元组表的类型定义*/
typedefstruct
introw,col;
/*该非零元素的行下标和列下标*/
inte;
/*该非零元素的值*/
}Triple;
Tripledata[MAXSIZE+1];
/*非零元素的三元组表。
data[0]未用*/
intm,n,len;
/*矩阵的行数、列数和非零元素的个数*/
}TSMatrix;
voidAddTSMatrix(TSMatrixA,TSMatrixB,TSMatrix*C)/*矩阵B和矩阵A相加*/
C->
m=A.m;
n=A.n;
len=0;
A.len&
B.len)
if((A.data[i].row==B.data[j].row)&
(A.data[i].col==B.data[j].col))
C->
data[C->
len].row=A.data[i].row;
len].col=A.data[i].col;
len++].e=A.data[i].e+B.data[j].e;
elseif((A.data[i].row==B.data[j].row)&
(A.data[i].col>
B.data[j].col))
len].row=B.data[j].row;
len].col=B.data[j].col;
len++].e=B.data[j].e;
(A.data[i].col<
len++].e=A.data[i].e;
elseif(A.data[i].row>
B.data[j].row)
else//if(A.data[i].row<
if(i==A.len&
C->
elseif(i<
j==B.len)
voidShowTSMatrix(TSMatrixM)/*打印矩阵M*/
inti,j,dir=0;
for(i=0;
M.m;
M.n;
j++)
if(M.data[dir].row==i&
M.data[dir].col==j)/*存在非零元*/
{
printf("
%d"
M.data[dir].e);
dir++;
}
else
0"
voidInitTSMatrix(TSMatrix*M)/*打印矩阵M*/
inti,j;
M->
len=0;
M->
m;
n;
if(rand()<
0.3*RAND_MAX)
M->
data[M->
len].row=i;
len].col=j;
len].e=1;
len++;
TSMatrixA,B,C;
A.m=5;
A.n=5;
B.m=5;
B.n=5;
srand((unsigned)time(NULL));
InitTSMatrix(&
A);
ThematrixAis:
ShowTSMatrix(A);
B);
ThematrixBis:
ShowTSMatrix(B);
AddTSMatrix(A,B,&
C);
ThematrixCis:
ShowTSMatrix(C);
上机实验5:
voidprint(intw);
intn;
n);
print(n);
voidprint(intw)
if(w!
=0)
print(w-1);
for(i=1;
=w;
++i)
%3d"
w);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 15 答案