数据结构实验指导书及答案(徐州工程学院).docx
《数据结构实验指导书及答案(徐州工程学院).docx》由会员分享,可在线阅读,更多相关《数据结构实验指导书及答案(徐州工程学院).docx(56页珍藏版)》请在沃文网上搜索。
1、数据结构实验实验指导书及答案信电工程学院 计算机科学和技术教研室 编2011.12数据结构实验所有代码整理作者 郑涛声明:在这里我整理了数据结构实验的所有代码,希望能对大家的数据结构实验的考试有所帮助,大家可以有选择地浏览,特别针对一些重点知识需要加强记忆(ps:重点知识最好让孙天凯给出),希望大家能够在数据结构实验的考试中取得令人满意的成绩,如果有做的不好的地方请大家谅解并欢迎予以指正。实验一 熟悉编程环境实验预备知识:1熟悉本课程的语言编译环境(TC或VC),能够用C语言编写完整的程序,并能够发现和改正错误。2能够灵活的编写C程序,并能够熟练输入C程序。一、实验目的1熟悉C语言编译环境,掌
2、握C程序的编写、编译、运行和调试过程。2能够熟练的将C程序存储到指定位置。二、实验环境 硬件:每个学生需配备计算机一台。 软件:Windows操作系统+Turbo C; 三、实验要求1将实验中每个功能用一个函数实现。2每个输入前要有输入提示(如:请输入2个整数当中用空格分割:),每个输出数据都要求有内容说明(如:280和100的和是:380。)。3函数名称和变量名称等用英文或英文简写(每个单词第一个字母大写)形式说明。四、实验内容1在自己的U盘中建立“姓名+学号”文件夹,并在该文件夹中创建“实验1”文件夹(以后每次实验分别创建对应的文件夹),本次实验的所有程序和数据都要求存储到本文件夹中(以后
3、实验都按照本次要求)。2编写一个输入某个学生10门课程成绩的函数(10门课程成绩放到结构体数组中,结构体包括:课程编号,课程名称,课程成绩)。3编写一个求10门成绩中最高成绩的函数,输出最高成绩和对应的课程名称,如果有多个最高成绩,则每个最高成绩均输出。4编写一个求10门成绩平均成绩的函数。5编写函数求出比平均成绩高的所有课程及成绩。#include#includestruct subject int subject_id; char subject_name20; double subject_grades;struct subject sub10;void input()int i;pri
4、ntf(please input:n);for(i=0;i10;i+)scanf(%d %s %lf,&subi.subject_id,&subi.subject_name,&subi.subject_grades);printf(you just input:n);for(i=0;i3;i+) printf(%d %s %lfn,subi.subject_id,subi.subject_name,subi.subject_grades);void subject_max()int i,flag;double max=sub0.subject_grades;for(i=0;imax)max=s
5、ubi.subject_grades;flag=i;printf(The high score of subject is %s %lfn,subflag.subject_name,max);void subject_average()int i;double average,sum=sub0.subject_grades;for(i=1;i10;i+)sum+=subi.subject_grades;average=sum/10;printf(subjects average is %lfn,average);void subjct_gtaverage()int i,flag;double
6、average,sum=sub0.subject_grades;for(i=1;i10;i+)sum+=subi.subject_grades;average=sum/10;for(i=0;iaverage)flag=i;printf(subject greater than average is %s %lfn,subflag.subject_name,subflag.subject_grades);int main() input(); subject_max(); subject_average(); subjct_gtaverage(); return 0;实验二 顺序表的基本操作实验
7、预备知识:1熟练运用数组进行程序设计,掌握数组名和指针作为函数参数。2掌握结构体和结构体数组的访问与使用。3熟练实现顺序表类型和变量(如下所示)定于、熟悉顺序表的访问原理(顺序存储、随机访问)。一、实验目的1掌握顺序表的建立、数据元素的插入和删除、掌握数据元素的访问。2能够熟练的使用函数来实现顺序表的各种操作。二、实验环境 硬件:每个学生需配备计算机一台。 软件:Windows操作系统+Turbo C; 三、实验要求1定义一顺序表类型,并定义顺序表。2将教材中顺序表的建立、初始化、插入、删除等函数实现。3顺序表能够存储10名学生的基本信息(包括姓名、学号和成绩)。4由主函数按照用户要求对各个顺
8、序表操作访问。5每次操作之前要有明确的说明,操作后要输出操作结果。6分析顺序表的插入、删除、查找的时间和空间复杂度。四、实验内容1在自己的U盘的“姓名+学号”文件夹中创建“实验2”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。2完成顺序表操作的如下函数:建立,初始化,增加,插入,删除。#include stdio.h#include malloc.h#include string.h#define LIST_INIT_SIZE 1#define LISTINCREMENT 1struct stuchar name6;char num3;int cj;struct sqliststru
9、ct stu *elem;int length;int listsize;void main()struct sqlist* initlist_hc();void cshlist_hc(struct sqlist *l);void listinsert_hc(struct sqlist *l);void listdelete_hc(struct sqlist *l);void listhb_hc(struct sqlist *l1,struct sqlist *l2,struct sqlist *l3);struct sqlist *l1,*l2,*l3;char f;int i, k=0;p
10、rintf(请选择对顺序表的操作,操作菜单如下:n);for(i=0;i80;i+)printf(*);printf(建立顺序表(C)n);printf(初始化顺序表(N)n);printf(顺序表中插入元素(I)n);printf(顺序表中删除元素(D)n);printf(合并顺序表(H)n);printf(退出系统(E)n);for(i=0;ielem=(struct stu*)malloc(LIST_INIT_SIZE*sizeof(struct stu);if(!l-elem)printf(出错!n);l-length=0;l-listsize=LIST_INIT_SIZE;print
11、f(请输入信息以-1结束:n);scanf(%s %s %d,x,y,&z);while(z!=-1)if(l-length=l-listsize)newbase=(struct stu*)realloc(l-elem,(l-listsize+LISTINCREMENT)*sizeof(struct stu);if(!newbase)printf(出错!n);l-elem=newbase;l-listsize+=LISTINCREMENT;strcpy(l-eleml-length.name,x);strcpy(l-eleml-length.num,y);l-eleml-length.cj=z
12、;scanf(%s %s %d,x,y,&z);if(z!=-1)l-length+;printlist_hc(l);void listinsert_hc(struct sqlist *l)int i,j;struct stu *newbase;void printlist_hc(struct sqlist *l);if(l-length=l-listsize)newbase=(struct stu*)realloc(l-elem,(l-listsize+LISTINCREMENT)*sizeof(struct stu);if(!newbase)printf(出错!n);l-elem=newb
13、ase;l-listsize+=LISTINCREMENT;printf(输入要插入信息的位置:);scanf(%d,&j);j-;for(i=l-length;i=j;i-)strcpy(l-elemi+1.name,l-elemi.name);strcpy(l-elemi+1.num,l-elemi.num);l-elemi+1.cj=l-elemi.cj;printf(输入插入信息:n);scanf(%s %s %d,l-elemj.name,l-elemj.num,&l-elemj.cj);l-length+;printlist_hc(l);void listdelete_hc(str
14、uct sqlist *l)void printlist_hc(struct sqlist *l);int i,j;printf(输入删除信息的位置:);scanf(%d,&j);j-;printf(删除的信息为:%s,%s,%dn,l-elemj.name,l-elemj.num,l-elemj.cj);for(i=j+1;ilength;i+)strcpy(l-elemi-1.name,l-elemi.name);strcpy(l-elemi-1.num,l-elemi.num);l-elemi-1.cj=l-elemi.cj;l-length-;printlist_hc(l);void
15、listhb_hc(struct sqlist *l1,struct sqlist *l2,struct sqlist *l3)void printlist_hc(struct sqlist *l);struct stu *p1,*p2,*p3;struct stu *p1_last,*p2_last;p1=l1-elem;p2=l2-elem;l3-length=l1-length+l2-length+1;l3-listsize=l1-length+l2-length+2;p3=l3-elem=(struct stu*)malloc(l3-listsize*sizeof(struct stu
16、);if(!l3-elem)printf(出错!n);p1_last=l1-elem+l1-length;p2_last=l2-elem+l2-length;while(p1=p1_last&p2cjp2-cj)strcpy(p3-name,p1-name);strcpy(p3-num,p1-num);p3-cj=p1-cj;p1+;p3+;else strcpy(p3-name,p2-name);strcpy(p3-num,p2-num);p3-cj=p2-cj;p2+;p3+;while(p1name,p1-name);strcpy(p3-num,p1-num);p3-cj=p1-cj;p
17、1+;p3+;while(p2name,p2-name);strcpy(p3-num,p2-num);p3-cj=p2-cj;p2+;p3+;printlist_hc(l3);void printlist_hc(struct sqlist *l)int i;printf(当前表中信息如下:n);for(i=0;ilength;i+)printf(%s,%s,%dn,l-elemi.name,l-elemi.num,l-elemi.cj);实验三 单链表的基本操作实验预备知识:1熟练运用指针进行程序设计,掌握结构体指针。2掌握使用结构体指针访问结构体变量。3掌握指针作为函数的参数使用。4理解单链
18、表的含义、目的和处理方法。一、实验目的1掌握线性表的链式存贮结构及基本操作,深入了解链表的基本特性,以便在实际问题背景下灵活运用它们。2巩固该存贮结构的构造方法,深入理解和灵活掌握链表的插入、删除等操作。二、实验环境 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; 软件:DOS或Windows操作系统+Turbo C; 三、实验要求1定义一链表类型,并定义带有头结点的单链表。2将教材中链表的建立、初始化、插入、删除等函数实现。3链表能够存储10名学生的基本信息(包括姓名、学号和成绩)。4由主函数按照用户要求对各个链表操作访问。5每次操作之前要有明确的说明,操作后要输出操作结
19、果。6分析顺序表链表的插入、删除、查找的时间和空间复杂度。四、实验内容1在自己的U盘的“姓名+学号”文件夹中创建“实验3”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。2完成链表操作的如下函数:建立,初始化,增加,插入,删除。/链表插入、删除、合并#include stdio.h#includestring.h#includemalloc.h#define LEN sizeof(struct lnode_hc)#define LEN1 sizeof(struct hc_stu)struct hc_stuchar name3;char num3;int cj;struct lnode_
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 指导书 答案 徐州 工程学院