小米课
返回首页 | 淘宝问答 | 提交答案
关键字: 威胁 防范 国外 科技优势 考核 电大 汉语专题 赤脚医生 | 时间:2024-09-20 06:10

发布时间:2024-09-20 06:10

| 人浏览

【答案】《数据结构》形成性考核册(实验报告)

电大本科【数据结构】形成性考核册实验报告
注:本答案仅供参考,如有错误敬请指正
来源:【电大文库】http://www.diandawenku.com/

实验1线性表的顺序存储结构:
1. #include
2. struct student{
3. char * name;
4. char * sex;
5. int age;
6. };
7. void main(){
8. student students[3],stumankind[3],stufemale[3];
9. students[0].name="female1";
10. students[0].sex="female";
11. students[0].age=20;
12. students[1].name="mankind1";
13. students[1].sex="mankind";
14. students[1].age=20;
15. students[2].name="mankind2";
16. students[2].sex="mankind";
17. students[2].age=24;
18. int i,j=0,k=0;
19. for(i=0;i<3;i++){
20. if(students[i].sex=="mankind"){
21. if(j<3){
22. stumankind[j].name=students[i].name;
23. stumankind[j].age=students[i].age;
24. stumankind[j].sex=students[i].sex;
25. j++;
26. }
27. }else{
28. if(k<3){
29. stufemale[k].name=students[i].name;
30. stufemale[k].age=students[i].age;
31. stufemale[k].sex=students[i].sex;
32. k++;
36. j=0;
37. for(i=0;i<2;i++){
38. j+=stumankind[i].age;}
39. printf("男生的平均年龄是 %d",j/2);
40. j=0;
41. for(i=0;i<1;i++){j+=stufemale[i].age;}
42. printf("女生的平均年龄是 %d",j/1);}

实验2递归程序设计
1. #include
2. void desc(int i){
3. printf("%d/t",i%10);
4. if(i>10)
5. desc(i/10);
6. void asc(int i){
8. if(i>10)
9. asc(i/10);
10. printf("%d/t",i%10);
12. void main(){
13. int i=13579;
14. asc(i);
15. printf("/n");
16. desc(i);

实验三 二叉数的顺序存储结构和链式存储结构
1. #include
2. struct Node{
3. char data;
4. struct Node *left;
5. struct Node *right;
7. Node * creath(Node s1[],int n,int i){
8. Node *p;
9. if(i>=n) p=NULL;
10.else{
11. p=&s1[i];
12.p->left=creath(s1,n,2*i+1);
13.p->right=creath(s1,n,2*i+2);
15.return p;
17.void Inorder(struct Node *bt){
18.if(bt!=NULL){
19.Inorder(bt->left);
20.printf("%c",bt->data);
21.Inorder(bt->right);
22.void main(){
23.Node s[8],*root;
24.int i;
25.printf("输入结点字符数据(8个字符)/n");
26.for(i=0;i<8;i++){
27.scanf("%c",&s[i].data);
29.root=NULL;
30.root=creath(s,8,0);
31.Inorder(root);

实验四 建立图的邻接矩阵
1. #include
2. #define MaxVertexNum 5
3. #define MaxEdgeNum 8
4. #define MaxValue 1000
5. typedef int VertexType;
6. typedef VertexType vexlist [MaxVertexNum];
7. typedef int adjmatrix [MaxVertexNum] [MaxVertexNum];
8. void Createl(vexlist Gv,adjmatrix GA,int n,int e){
9. int i,j,k,w;
10. printf("输入%d个顶点数据/n",n);
11. for(i=0;i12. scanf("%d",&Gv[i]);
13. for(i=0;i14. for(j=0;j15. if(i==j)GA[i][j]=0;
16. else
17. GA[i][j]=MaxValue;
21. printf("输入%d条无向带权边/n",e);
22. for(k=0;k23. scanf("%d%d%d",&i,&j,&w);
24. GA[i][j]=GA[j][i]=w;
27. void main(){
28. vexlist vl;
29. adjmatrix a;
30. Createl(vl,a,5,8);

实验五 查找
1. #include
2. struct stud{
3. char name[10];
4. float mark;
6. int search(stud s[],int n,float k){
7. int low,mid,high;
8. low=0;
9. high=n-1;
10. while(low<=high){
11. mid=(low+high)/2;
12. if(s[mid].mark==k)
14. return mid;
15. }else if(s[mid].mark>k){
16. low=mid+1;
17. if(s[low-1].mark>k && s[low].mark18. return low;
20. }else{
21. high=mid-1;
22. if(s[high].markk)
23. {return high;}
24. return -1;
25. void main(){
26. stud st1[4],Instr1;
27. st1[0].name="stu1";
28. st1[0].mark=90;
29. st1[1].name="stu2";
30. st1[1].mark=70;
31. st1[2].name="stu3";
32. st1[2].mark=60;
33. printf("输入学生姓名 ");
34. scanf("%s",&Instr1.name);
35. printf("输入学生成绩 ");
36. scanf("%f",&Instr1.mark);
37. int num,i;
38. num=search(st1,3,Instr1.mark);
39. for(i=3;i>num;i--){
40. st1[i]=st1[i-1];
41. st1[num]=Instr1;
42. printf("插入位置元素的下标为 %d ",num);

实验六 冒泡法排序的改进算法
1. #include
2. #define MAX 3
3. struct stu{
4. char *name;
5. float mark1;
6. float mark2;
7. float avg;
8. void bsort(stu s1[],int n){
9. stu temp;
10. int i,j,flag;
11. for(j=0;j12. flag=0;
13. for(i=0;i14. if(s1[i].avg15. flag=1;
16. temp=s1[i];
17. s1[i]=s1[i+1];
18. s1[i+1]=temp;
19. if(flag==0) break;
20. void main(){
21. stu s1[MAX];
22. int i;
23. for(i=0;i24. printf("输入学生%d姓名: ",i+1);
25. scanf("%s",&s1[i].name);
26. printf("输入学生数学分数: ");
27. scanf("%f",&s1[i].mark1);
28. printf("输入学生语文分数: ");
29. scanf("%f",&s1[i].mark2);
30. s1[i].avg=(s1[i].mark1+s1[i].mark2)/2;
31. printf("平均分为:%3.2f /n",s1[i].avg);
32. bsort(s1,MAX);
33. for(i=0;i34. printf("第%d名 %s 同学 %3.2f分/n ",i+1,&s1[i].name,s1[i].avg);

答案有错

上一篇:《数据结构》形成性考核册作业4

下一篇:暂无

小米课手机端XML联系我们