数据结构实测验完整答案Word文档下载推荐.docx
《数据结构实测验完整答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构实测验完整答案Word文档下载推荐.docx(25页珍藏版)》请在冰点文库上搜索。
![数据结构实测验完整答案Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/72d87d64-3404-4a52-9a3c-aaa3b9f31d39/72d87d64-3404-4a52-9a3c-aaa3b9f31d391.gif)
inputothermima\n"
);
for(i=1;
i<
=n;
i++)
{
scanf("
%d"
&
mima);
s=(Node*)malloc(sizeof(Node));
s->
bianhao=i;
mima=mima;
r->
next=s;
r=s;
}
next=l->
next;
returnl;
}
DeleNode(intm,intn,Node*l)
inti,j;
Node*p,*q;
p=l;
i=1;
while(i<
=n)
for(j=1;
j<
=m-1;
j++)p=p->
q=p->
p->
next=q->
chuduidrenshi%d,qimimashi%d\n"
q->
bianhao,q->
i++;
m=q->
mima;
free(q);
return;
main()
Node*l;
intm,n;
inputnumberofpeopleandthefirstmima\n"
%d,%d"
n,&
m);
l=CreatFromTail(n);
DeleNode(m,n,l);
2.回文判断
方法1:
#include"
stdio.h"
chara[100],c;
intlen;
inti,j,top;
i=0;
while((c=getchar())!
='
@'
)
a[i]=c;
for(j=0;
i;
j++)
%c"
a[j]);
top=i-1;
j=0;
while(top>
=0)
if(a[top]!
=a[j])
isnot"
top--;
j++;
is"
方法2:
#defineTRUE1
#defineFALSE0
#definestacksize100
#definequeuesize100
typedefstruct
charelem[queuesize];
intfront,rear;
}sequeue;
charelem[stacksize];
inttop;
}seqstack;
intEnterQueue(sequeue*q,charx)
if((q->
rear+1)%queuesize==q->
front)return(FALSE);
q->
elem[q->
rear]=x;
rear=(q->
rear+1)%queuesize;
return(TRUE);
chardelete(sequeue*q)
charx;
if(q->
rear==q->
x=q->
front];
front=(q->
front+1)%queuesize;
return(x);
intpush(seqstack*s,charx)
if(s->
top==stacksize-1)return(FALSE);
top++;
elem[s->
top]=x;
charpop(seqstack*s)
top==-1)return(FALSE);
else
x=s->
top];
top--;
charc;
intlen1=0,len2=0;
seqstack*s;
sequeue*q;
charx1,x2;
q=(sequeue*)malloc(sizeof(sequeue));
front=q->
rear=0;
&
'
EnterQueue(q,c);
len1++;
s=(seqstack*)malloc(sizeof(seqstack));
top=-1;
push(s,c);
len2++;
if(len1!
=len2)printf("
while(s->
top>
x1=pop(s);
x2=delete(q);
if(x1!
=x2){printf("
3.串操作(92页实习题1)
chars[100],t[100],r[100],c;
inti,j,k,m,len1,len2,len3;
gets(s);
gets(t);
len1=0;
while(s[len1]!
\0'
)len1++;
len2=0;
while(t[len2]!
)len2++;
len3=0;
k=0;
len1)
while((j<
len2)&
(s[i]!
=t[j]))
if(j>
=len2)
r[len3]=s[i];
m=0;
while((m<
len3)&
r[m]!
=r[len3])m++;
if(m==len3)printf("
%czaiszhongshoucichuxiandeweizhishi%d\n"
r[len3],i);
len3++;
for(k=0;
k<
len3;
k++)
r[k]);
}_
string.h"
#defineMaxlen100
typedefstruct{
charch[Maxlen];
}SString;
concat(SString*s,SStringt)
inti,flag;
if(s->
len+t.len<
=Maxlen)
for(i=s->
len;
s->
len+t.len;
ch[i]=t.ch[i-s->
len];
len+=t.len;
flag=1;
elseif(s->
len<
Maxlen)
Maxlen;
len=Maxlen;
flag=0;
elseflag=0;
return(flag);
len(SStrings)
return(s.len);
SubString(SString*sub,SStrings,intpos,intlen)
inti;
if(pos<
0||pos>
s.len||len<
1||len>
s.len-pos)
sub->
len=0;
return(0);
for(i=0;
ch[i]=s.ch[i+pos];
ch[i]='
;
len=len;
return1;
equal(SStrings,SStringt)
if(s.len!
=t.len)return0;
s.len&
t.len;
if(s.ch[i]!
=t.ch[i])return0;
StrIndex(SStrings,intpos,SStringt)
if(t.len==0)return0;
i=pos;
t.len)
if(s.ch[i]==t.ch[j]){i++;
j++;
else{i=i-j+1;
j=0;
=t.len)return(i-j);
elsereturn0;
SStrings,t,x,r={"
"
0};
SString*sub1,*sub2,*sub3;
inti,j,k;
sub1=(SString*)malloc(sizeof(SString));
sub2=(SString*)malloc(sizeof(SString));
sub3=(SString*)malloc(sizeof(SString));
gets(s.ch);
s.len=strlen(s.ch);
gets(t.ch);
t.len=strlen(t.ch);
/*SubString(sub1,s,1,1);
concat(&
r,*sub1);
SubString(sub1,s,2,1);
%s\n"
sub1->
ch);
r.ch);
*/
s.len)
SubString(sub1,s,i,1);
SubString(sub2,t,j,1);
t.len)&
!
equal(*sub1,*sub2))
=t.len)
r.len=strlen(r.ch);
r.len;
SubString(sub3,r,k,1);
%s%d\n"
sub3->
ch,StrIndex(s,0,*sub3));
4.151页实习题1
typedefstructBiNode
chardata;
structBiNode*Lchild,*Rchild;
}BiNode;
BiNode*creatBiTree()
BiNode*bt;
charch;
ch=getchar();
if(ch=='
.'
)bt=NULL;
bt=(BiNode*)malloc(sizeof(BiNode));
bt->
data=ch;
Lchild=creatBiTree();
Rchild=creatBiTree();
returnbt;
voidpreorder(BiNode*root)
if(root!
=NULL)
root->
data);
preorder(root->
Lchild);
Rchild);
voidmidorder(BiNode*root)
midorder(root->
voidsucorder(BiNode*root)
sucorder(root->
main()
BiNode*root;
root=NULL;
root=creatBiTree();
\nxianxu:
\n"
preorder(root);
\nzhongxu:
midorder(root);
\nhouxu:
sucorder(root);
#include<
stdio.h>
stdlib.h>
#defineMAX_VERTEX_NUM10/*最多顶点个数*/
#defineINFINITY32768/*最大权值,即:
无穷大*/
#defineTrue1
#defineFalse0
/*#defineError-1*//*出错*/
#defineOk1
/*假设顶点数据为整型*/
intvexs[MAX_VERTEX_NUM];
/*顶点向量*/
intarcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
/*邻接矩阵*/
intvexnum,arcnum;
/*图的顶点数和弧数*/
}AdjMatrix;
/*(AdjacencyMatrixGraph)*/
intvisited[MAX_VERTEX_NUM];
/*访问标志数组*/
intCreateDN(AdjMatrix*G)/*创建一个有向网,且顶点递增存储*/
{inti,j,k,weight,v1,v2;
Pleaseinputgraph'
sarcnumandvexnum:
G->
arcnum,&
vexnum);
/*输入图的顶点数和弧数*/
vexnum;
G->
arcs[i][j]=INFINITY;
Pleaseinputvertex:
0,1,2,……"
vexs[i]=i;
/*scanf("
vexs[i]);
输入图的顶点*/
sarcs:
arcs_tail,arcs_headandweight"
arcnum;
k++)
{scanf("
%d,%d,%d"
v1,&
v2,&
weight);
/*输入一条弧的顶点及权值*/
/*i=LocateVex_M(G,v1);
j=LocateVex_M(G,v2);
*/
arcs[v1][v2]=weight;
/*建立弧*/
}
return(Ok);
voidDepthFirstSearch(AdjMatrixg,intv0)/*深度优先搜索邻接矩阵*/
{intvj;
%5d"
v0);
visited[v0]=True;
for(vj=0;
vj<
g.vexnum;
vj++)
if(!
visited[vj]&
g.arcs[v0][vj]!
=INFINITY)
DepthFirstSearch(g,vj);
}/*DepthFirstSearch*/
voidTraverseGraph(AdjMatrixg)/*对图g进行深度优先搜索*/
{intvi;
for(vi=0;
vi<
vi++)visited[vi]=False;
/*访问标志数组初始*/
vi++)/*调用深度遍历连通子图的操作*/
if(!
visited[vi])DepthFirstSearch(g,vi);
}/*TraverseGraph*/
{AdjMatrixgraph;
CreateDN(&
graph);
graph.vexnum;
{for(j=0;
%8d"
graph.arcs[i][j]);
TraverseGraph(graph);
×
#include<
conio.h>
#defineM10/*此头函数请不要删除*/
charname[15];
intscore;
}student;
voidCreatTable(studentstu[M+1],intn)/*createstudent'
sgradetable*/
{
pleaseinputthestudent'
sname\n"
%s"
stu[i].name);
sscore\n"
stu[i].score);
voidInssort(studentstud[M+1],intn)/*insertsort*/
for(i=2;
{
stud[0]=stud[i];
j=i-1;
while(stud[0].score<
stud[j].score)
stud[j+1]=stud[j];
j=j-1;
stud[j+1]=stud[0];
}/*endInssort*/
voidBubblesort(studentstud[M+1],intn)
studentstu;
inti,j=1;
n;
=n-j;
if(stud[i].score<
stud[i+1].score)
stu=stud[i];
stud[i]=stud[i+1];
stud[i+1]=stu;
voidprint(studentstu[M+1],intn)
inti=1,j=0;
%-15s"
%-5d"
stu[i].score);
%-5d\n"
i);
if(stu[i].score==stu[i-1].score)
i-j);
intn;
studenttable[M+1];
Pleaseinputthestudent'
snumber:
n);
CreatTable(table,n);
Inssort(table,n);
print(table,n);
*************************\n"
Bubblesort(table,n);
getch();
string.h>
#definemax_st_num40
{charname[15];
intflag;
}sname;
typedefsnamehtable;
voidcr