兰州大学数据结构上机实验题目及答案Word下载.docx
- 文档编号:19038110
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:19
- 大小:18.96KB
兰州大学数据结构上机实验题目及答案Word下载.docx
《兰州大学数据结构上机实验题目及答案Word下载.docx》由会员分享,可在线阅读,更多相关《兰州大学数据结构上机实验题目及答案Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
);
//scanf("
%c"
&
tem);
tem=getchar();
h->
ch=tem;
while(tem!
='
$'
)
{
printf("
请继续输入:
s=malloc(sizeof(structstr));
if(s!
{
tem=getchar();
//scanf("
s->
}
if(tem=='
free(s);
else
if(h->
next==NULL)
h->
next=s;
else
p->
p=s;
}
p->
}
printf("
字符串逆序输出为:
\n"
while(h->
next!
\0'
p=h;
while(p->
s=p;
p=p->
next;
p->
ch);
s->
next='
;
h->
}
#include<
iostream.h>
fstream.h>
stdlib.h>
charname[40];
chardepartment[40];
floatbasepay;
floatallowance;
floattotal;
fstreaminstuf,outstuf;
outstuf.open("
c:
\\paydata.txt"
ios:
:
out);
if(!
outstuf)
cout<
<
Filecouldnotopen!
endl;
abort();
cout<
请输入员工的姓名,部门,基本工资,津贴,总计工资:
while(cin>
>
name>
department>
basepay>
allowance>
total)
outstuf<
name<
'
'
department<
basepay<
allowance<
total<
\n'
}
outstuf.close();
instuf.open("
in);
instuf)
while(instuf>
basepay+100<
total+100<
instuf.close();
实验二
1、数组
intJosephu[1000],m,n,i,j=0,c1=0,c2=1,t;
请输入总人数n:
scanf("
%d"
n);
请输入m:
m);
t=n;
for(i=0;
i<
n;
i++)
Josephu[i]=i+1;
while(c1<
t)
if((c2)%m==0)
%d\t"
Josephu[j]);
c1++;
n=n-1;
for(i=j;
if(Josephu[i+1]!
=0)
Josephu[i]=Josephu[i+1];
j=j-1;
c2++;
j++;
if(j==n)
j=0;
2、链表
structJosephu
intnum;
structJosephu*next;
inti=1,m,n,count=1;
structJosephu*head,*s,*t;
head=(structJosephu*)malloc(sizeof(structJosephu));
head->
num=1;
请输入循环数m:
t=head;
while(i<
n)
s=(structJosephu*)malloc(sizeof(structJosephu));
num=i+1;
t->
t=s;
i++;
t->
next=head;
while(t!
if(count%m==0)
t->
num);
if(t->
=t)
next=t->
t=t->
count+=1;
t=NULL;
else
s=t;
t=t->
count++;
实验三
structdata
intmen;
structdata*next;
voidshow(data*st);
data*creat();
data*insert(data*h,inttem1,intlocal);
data*head;
intb,a;
head=creat();
show(head);
请输入要插入的数据:
cin>
b;
请输入要插入的位置:
a;
head=insert(head,b,a);
data*creat()
data*h,*t,*s;
intchoice;
h=newdata;
请输入数据:
h->
men;
t=h;
请选择:
1、继续输入2、退出"
choice;
while(choice!
=2)
s=newdata;
cin>
s->
returnh;
data*insert(data*h,inttem1,intlocal)
data*t,*s,*bt;
bt=newdata;
bt->
men=tem1;
if(h->
men==local)
bt->
next=h;
h=bt;
else
while(t->
=NULL&
&
t->
men!
=local)
if(t->
s->
next=bt;
bt->
next=t;
cout<
位置输入错误!
voidshow(data*st)
data*p;
p=st;
while(p!
p->
men<
\t"
p=p->
实验四
structtree
structtree*llink;
structtree*rlink;
tree*create();
voidshow(tree*);
tree*head;
head=create();
tree*create()
voidinsert(tree*h,tree*t);
tree*h=NULL,*s,*t;
1、输入数据2、退出"
s=newtree;
llink=NULL;
rlink=NULL;
num;
if(h==NULL)
h=s;
t=h;
insert(h,s);
voidshow(tree*h)
show(h->
llink);
num<
\t'
rlink);
voidinsert(tree*h,tree*t)
num)
if(h->
rlink==NULL)
h->
rlink=t;
insert(h->
rlink,t);
llink==NULL)
llink=t;
llink,t);
实验五
#defineMAX50
structnode
intadjvex;
intdut;
structnode*next;
}node;
structvexnode
intvertex,indegree;
intve,vl;
structnode*link;
}vexnode;
structadjlist
structvexnodeA[MAX];
}adjlist;
voidcreatadjlist(structadjlist*G,intn,inte)
inta,b,w,i;
structnode*p;
G->
A[i].link=NULL;
A[i].vertex=i+1;
A[i].indegree=0;
A[i].ve=0;
e;
请输入第%d条边的起点,终点及权:
i+1);
%d%d%d"
a,&
b,&
w);
p=(structnode*)malloc(sizeof(structnode));
p->
adjvex=b;
dut=w;
A[b-1].indegree++;
next=G->
A[a-1].link;
A[a-1].link=p;
inttoporder(structadjlist*G,intn)
inttop1=0,top2=0;
intm=0,i,k,j;
for(i=1;
=n;
if(G->
A[i-1].indegree==0)
A[i-1].indegree=top1;
top1=i;
while(top1!
j=top1;
top1=G->
A[j-1].indegree;
A[j-1].indegree=top2;
top2=j;
m=m+1;
p=G->
A[j-1].link;
k=p->
adjvex;
A[k-1].indegree=G->
A[k-1].indegree-1;
A[k-1].indegree==0)
A[k-1].indegree=top1;
top1=k;
}
if((G->
A[j-1].ve+p->
dut)>
G->
A[k-1].ve)
A[k-1].ve=G->
dut;
p=p->
if(m<
有环!
returntop2;
voidcritical_path(structadjlist*G,inttop2,intn)
inti,v,j;
intei,el;
intendnode;
endnode=top2;
A[i].vl=G->
A[n-1].ve;
while(top2!
v=top2;
top2=G->
A[v-1].indegree;
A[v-1].link;
{
j=p->
A[j-1].vl-p->
dut<
A[v-1].vl))
A[v-1].vl=G->
\n关键路径是:
A[i].link;
ei=G->
A[i].ve;
el=G->
if(ei==el)
{printf("
V[%d],"
G->
A[i].vertex);
V[%d]\n"
A[endnode-1].vertex);
intn,e;
inttop2;
structadjlist*G;
请分别输入顶点n和边e的数目:
%d%d"
n,&
e);
G=(structadjlist*)malloc(sizeof(structadjlist));
creatadjlist(G,n,e);
top2=toporder(G,n);
critical_path(G,top2,n);
实验六
#defineN100
voidsift(intr[N],intk,intm)
intj;
intx;
intfinished;
j=2*k;
x=r[k];
finished=0;
while(j<
=m&
finished!
=1)
if(j<
m&
r[j]>
r[j+1])
j=j+1;
if(x<
=r[j])
finished=1;
r[k]=r[j];
k=j;
r[k]=x;
voidheapsort(intr[N],intn)
inti,t;
for(i=n/2;
i>
=1;
i--)
sift(r,i,n);
for(i=n;
t=r[i];
r[i]=r[1];
r[1]=t;
sift(r,1,i-1);
intr[N];
inti,n;
请输入要排序的数的数目:
请输入数:
r[i]);
heapsort(r,n);
排序后为:
%4d"
r[i]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兰州大学 数据结构 上机 实验 题目 答案