数据结构实验安排49068.doc

上传人:pu****.1 文档编号:554939592 上传时间:2023-05-26 格式:DOC 页数:10 大小:32KB
返回 下载 相关 举报
数据结构实验安排49068.doc_第1页
第1页 / 共10页
数据结构实验安排49068.doc_第2页
第2页 / 共10页
数据结构实验安排49068.doc_第3页
第3页 / 共10页
数据结构实验安排49068.doc_第4页
第4页 / 共10页
数据结构实验安排49068.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数据结构实验安排49068.doc》由会员分享,可在线阅读,更多相关《数据结构实验安排49068.doc(10页珍藏版)》请在金锄头文库上搜索。

1、数据结构实验安排49068编程技术精品! 数据结构实验安排(供08信管、08网工使用)温州大学计算机学院 吴文国实验一 熟悉VC环境(2周)目的熟悉VC环境,巩固C语言结构体的使用方法。说明某一个班级有若干同学(假设不超过20人),每个同学有学号,姓名,语文,数学、物理三门功课成绩有总分及名次等信息。 程序的结构如下所示。完成该程序并在上机运行测试。附录 程序的大致结构如下#include#define MaxNum 20typedef struct studInfoint number;char name20;int chinese; /项,域 int math;int Physics;in

2、t totalScore;int order;STUDINFO; main() int Num;/实际人数 STUDINFO studMaxNum; int i; printf(请输入学生人数(要小于等于%dn),MaxNum); scanf(%d,&Num); for(i=0;iNum;i+) scanf(%d,&studi.number);scanf(%s,studi.name);scanf(%d%d%d,&studi.chinese,&studi.math,&studi.Physics);/* 1.输入 Num个同学的各门功课的成绩注释语句,计算机不执行,供用户阅读*/* 2.求各同学的

3、总分*/* 3. 求名次 */* 4.把数据输出*/ 思考题 1. 当输入学生人数大于MaxNum时,会出现错误,如何处理这个错误?如果要求用户再次输入,怎么实现?2有时事先不知道实际人数,在操作过程中才知道人数。怎么办?可能在输入过程中,当输入的学号是一个非正常数时,表示输入结束,如何实现?3如果1,2,3,4都用函数实现,如何实现?实验二 性线表的插入与删除操作 -数组实现目的巩固线性概念和基本操作,学会用数组实现线性表。说明 数据结构及定义与实验一一样。最初输入若干个同学了,在处理过程中,有些同学被删除,有些同学插入,根据输入学号输出学生信息。要求有以下的功能都用单独一个函数实现:1 输

4、入若干个学生的数据2 插入某一个同学的数据3 删除某一个同学的数据4 输入学号查找某一个同学5 输出整个表格。实验二的程序结构#includetypedef struct studInfo int number; char name20; int chinese; /项,域 int math; int Physics; int totalScore; int order;STUDINFO;#define ListSize 100typedef STUDINFO DataType;typedef struct DataType dataListSize; int Length; SeqList;

5、int InsertList(SeqList *L,DataType x,int i) /返回是1表示插入成功0表示不成功 /将新结点 x插入L所指的顺序表的第i个结点ai的位置上编程技术精品! int j; if (iL-length+1) / Error(position error);/非法位置,退出运行 printf(插入位置出错:);return 0; if (L-length=ListSize) / Error(overflow); /表空间溢出,退出运行 printf(线性表已满,不能再插入n); return 0; for(j=L-length-1;j=i-1;j-) L-da

6、taj+1=L-dataj;/结点后移 L-datai-1=x; /插入x L-Length+; /表长加1 return 1;main() int Num; int i; int pos;int select;/STUDINFO s1;SeqList stud; /初始化stud.Length=0; printf(请输入学生人数(要小于等于%dn),MaxNum); scanf(%d,&Num); /* 建立一个输入函数,其功能是专门用来Num个同学的数据 */while(1) printf( 请选择 : 0(退出) 1(插入),2(删除) 3(查找):); scanf(%d,&select

7、); switch(select) case 1: printf(输入要插入的位置);scanf(%d,&pos);/* 输入一个同学的数据:学号,姓名,成绩等放在s1 */* 写一个函数实现插入算法 ,基本与书上的相似,但是要做少些改变 */ if(InsertList(&stud,s1,i) =1) printf(插入成功:n); else printf(插入不成功n);break;case 2: /* 写一个函数实现删除算法 ,基本与书上的相似,但是要做少些改变 */break;case 3: /* 写一个函数实现查找算法 ,基本与书上的相似,但是要做少些改变 */break;case

8、0: printf(程序正常结束,下次再见n); exit(0);实验三 性线表 -链表实现目的巩固线性概念和基本操作,学会用链表实现线性表。说明与实验二一样。实验四 数组的三元组表示目的巩固数组的概念和基本操作,学会用三元数表示稀疏矩阵。说明 用三元数表示稀疏矩阵,并用三元组对二个稀疏矩阵进行相加。相乘(选做)。程序的结构/*1. 定义三元数数据类型 */*2. 建立一个函数,该函数把一个稀疏矩阵用三元组存储*/*3. 建立一个函数,对二个三元数进行加操作编程技术精品! */*4. 建立一个函数对二个三元数进行乘操作(选做)*/* 5. 写一个函数输入输出三元数所对就的稀疏矩阵*/main(

9、)/* 根据问题写出调用过程*/实验五 Haffman树目的巩固二叉树的概念和基本操作,学会用Haffman树进行编码操作。说明 参考书本p94至p97,用哈夫曼树求以下表的编码:字符ABcdef频率0.450.130.120.160.090.05同学也可自己想出类似的例子进行测试。实验六 求关键路径目的 巩固图的基本概念和图的操作。掌握生成树的求解方法及实现过程。说明 P247实习题1,2,3选做一题/以下三个实验是机动题,学生根据自己的能力选做实验七 查找目的 巩固查找的基本方法和基本原理,掌握常用查找算法的设计。说明 P296实习题一实验八 排序目的 熟悉常用的排序算法。说明 P336实习题1,2,3选做一题编程技术精品!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号