数据结构实验指导书及答案(徐州工程学院)x.docx

上传人:b****9 文档编号:157207 上传时间:2022-10-04 格式:DOCX 页数:57 大小:271.13KB
下载 相关 举报
数据结构实验指导书及答案(徐州工程学院)x.docx_第1页
第1页 / 共57页
数据结构实验指导书及答案(徐州工程学院)x.docx_第2页
第2页 / 共57页
数据结构实验指导书及答案(徐州工程学院)x.docx_第3页
第3页 / 共57页
数据结构实验指导书及答案(徐州工程学院)x.docx_第4页
第4页 / 共57页
数据结构实验指导书及答案(徐州工程学院)x.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

数据结构实验指导书及答案(徐州工程学院)x.docx

《数据结构实验指导书及答案(徐州工程学院)x.docx》由会员分享,可在线阅读,更多相关《数据结构实验指导书及答案(徐州工程学院)x.docx(57页珍藏版)》请在冰豆网上搜索。

数据结构实验指导书及答案(徐州工程学院)x.docx

《数据结构实验》实验指导书及答案

信电工程学院计算机科学和技术教研室编

2011.12

数据结构实验所有代码整理

作者郑涛

声明:

在这里我整理了数据结构实验的所有代码,希望能对大家的数据结构实验的考试有所帮助,大家可以有选择地浏览,特别针对一些重点知识需要加强记忆(ps:

重点知识最好让孙天凯给出),希望大家能够在数据结构实验的考试中取得令人满意的成绩,如果有做的不好的地方请大家谅解并欢迎予以指正。

实验一 熟悉编程环境

实验预备知识:

1.熟悉本课程的语言编译环境(TC或VC),能够用C语言编写完整的程序,并能够发现和改正错误。

2.能够灵活的编写C程序,并能够熟练输入C程序。

一、实验目的

1.熟悉C语言编译环境,掌握C程序的编写、编译、运行和调试过程。

2.能够熟练的将C程序存储到指定位置。

二、实验环境

⒈硬件:

每个学生需配备计算机一台。

⒉软件:

Windows操作系统+TurboC;

三、实验要求

1.将实验中每个功能用一个函数实现。

2.每个输入前要有输入提示(如:

请输入2个整数当中用空格分割:

),每个输出数据都要求有内容说明(如:

280和100的和是:

380。

)。

3.函数名称和变量名称等用英文或英文简写(每个单词第一个字母大写)形式说明。

四、实验内容

1.在自己的U盘中建立“姓名+学号”文件夹,并在该文件夹中创建“实验1”文件夹(以后每次实验分别创建对应的文件夹),本次实验的所有程序和数据都要求存储到本文件夹中(以后实验都按照本次要求)。

2.编写一个输入某个学生10门课程成绩的函数(10门课程成绩放到结构体数组中,结构体包括:

课程编号,课程名称,课程成绩)。

3.编写一个求10门成绩中最高成绩的函数,输出最高成绩和对应的课程名称,如果有多个最高成绩,则每个最高成绩均输出。

4.编写一个求10门成绩平均成绩的函数。

5.编写函数求出比平均成绩高的所有课程及成绩。

#include

#include

structsubject

{

intsubject_id;

charsubject_name[20];doublesubject_grades;

};

structsubjectsub[10];voidinput()

{

inti;

printf("pleaseinput:

\n");for(i=0;i<10;i++)

{

scanf("%d %s

%lf",&sub[i].subject_id,&sub[i].subject_name,&sub[i].subject_grades);

}

printf("youjustinput:

\n");for(i=0;i<3;i++)

{

printf("%d %s

%lf\n",sub[i].subject_id,sub[i].subject_name,sub[i].subject_grades);

}

}

voidsubject_max()

{

inti,flag;

doublemax=sub[0].subject_grades;for(i=0;i<10;i++)

{

if(sub[i].subject_grades>max)max=sub[i].subject_grades;flag=i;

}

printf("The high score of subject is %s

%lf\n",sub[flag].subject_name,max);

}

voidsubject_average()

{

inti;

doubleaverage,sum=sub[0].subject_grades;for(i=1;i<10;i++)

{

sum+=sub[i].subject_grades;

}

average=sum/10;

printf("subject'saverageis%lf\n",average);

}

voidsubjct_gtaverage()

{

inti,flag;

doubleaverage,sum=sub[0].subject_grades;for(i=1;i<10;i++)

{

sum+=sub[i].subject_grades;

}

average=sum/10;for(i=0;i<10;i++)

{

if(sub[i].subject_grades>average)

{

flag=i;

printf("subject greater than average is %s

%lf\n",sub[flag].subject_name,sub[flag].subject_grades);

}

}

}

intmain()

{

input();subject_max();subject_average();subjct_gtaverage();return0;

}

实验二顺序表的基本操作

实验预备知识:

1.熟练运用数组进行程序设计,掌握数组名和指针作为函数参数。

2.掌握结构体和结构体数组的访问与使用。

3.熟练实现顺序表类型和变量(如下所示)定于、熟悉顺序表的访问原理(顺序存储、随机访问)。

一、实验目的

1.掌握顺序表的建立、数据元素的插入和删除、掌握数据元素的访问。

2.能够熟练的使用函数来实现顺序表的各种操作。

二、实验环境

⒈硬件:

每个学生需配备计算机一台。

⒉软件:

Windows操作系统+TurboC;

三、实验要求

1.定义一顺序表类型,并定义顺序表。

2.将教材中顺序表的建立、初始化、插入、删除等函数实现。

3.顺序表能够存储10名学生的基本信息(包括姓名、学号和成绩)。

4.由主函数按照用户要求对各个顺序表操作访问。

5.每次操作之前要有明确的说明,操作后要输出操作结果。

6.分析顺序表的插入、删除、查找的时间和空间复杂度。

四、实验内容

1.在自己的U盘的“姓名+学号”文件夹中创建“实验2”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。

2.完成顺序表操作的如下函数:

建立,初始化,增加,插入,删除。

#include"stdio.h"

#include"malloc.h"#include"string.h"

#defineLIST_INIT_SIZE1

#defineLISTINCREMENT1

structstu

{charname[6];charnum[3];intcj;};

structsqlist

{structstu*elem;intlength;

intlistsize;};

voidmain()

{structsqlist*initlist_hc();voidcshlist_hc(structsqlist*l);

voidlistinsert_hc(structsqlist*l);voidlistdelete_hc(structsqlist*l);

voidlisthb_hc(structsqlist*l1,structsqlist*l2,structsqlist*l3);structsqlist*l1,*l2,*l3;

charf;inti,k=0;

printf("请选择对顺序表的操作,操作菜单如下:

\n");for(i=0;i<80;i++)printf("*");

printf("建立顺序表(C)\n");

printf("初始化顺序表(N)\n");

printf("顺序表中插入元素(I)\n");

printf("顺序表中删除元素(D)\n");

printf("合并顺序表(H)\n");

printf("退出系统(E)\n");

for(i=0;i<80;i++)printf("*");do

{printf("输入大写字母按Enter确定:

");flushall();

f=getchar();if(f=='C')

{if(k==0)l1=initlist_hc();else{l2=initlist_hc();}k++;}

elseif(f=='N')

{if(k==1)cshlist_hc(l1);elsecshlist_hc(l2);}elseif(f=='I')

{if(k==1)listinsert_hc(l1);elselistinsert_hc(l2);}

elseif(f=='D')

{if(k==1)listdelete_hc(l1);elselistdelete_hc(l2);}elseif(f=='H')

{l3=initlist_hc();listhb_hc(l1,l2,l3);}

}while(f!

='E');}

structsqlist*initlist_hc()

{structsqlist*l;

l=(structsqlist*)malloc(sizeof(structsqlist));

if(!

l)printf("出错!

\n");return(l);}

voidcshlist_hc(structsqlist*l)

{structstu*newbase;

voidprintlist_hc(structsqlist*l);charx[6],y[3];intz;

l->elem=(structstu*)malloc(LIST_INIT_SIZE*sizeof(structstu));if(!

l->elem)printf("出错!

\n");

l->length=0;

l->listsize=LIST_INIT_SIZE;

printf("请输入信息以-1结束:

\n");scanf("%s%s%d",x,y,&z);while(z!

=-1)

{if(l->length==l->listsize)

{newbase=(structstu*)realloc(l->elem,(l->listsize+LISTINCREMENT)*sizeof(structstu));

if(!

newbase)printf("出错!

\n");

l->elem=newbase;l->listsize+=LISTINCREMENT;}strcpy(l->elem[l->length].name,x);

strcpy(l->elem[l->length].num,y);l->elem[l->length].cj=z;scanf("%s%s%d",x,y,&z);

if(z!

=-1)l->length++;}printlist_hc(l);}

voidlistinsert_hc(structsqlist*l)

{inti,j;

structstu*newbase;

voidprintlist_hc(structsqlist*l);if(l->length==l->listsize)

{newbase=(structstu*)realloc(l->elem,(l->listsize+LISTINCR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1