数据结构实验答案文档推荐

上传人:粗**** 文档编号:135279603 上传时间:2020-06-14 格式:PDF 页数:60 大小:794.93KB
返回 下载 相关 举报
数据结构实验答案文档推荐_第1页
第1页 / 共60页
数据结构实验答案文档推荐_第2页
第2页 / 共60页
数据结构实验答案文档推荐_第3页
第3页 / 共60页
数据结构实验答案文档推荐_第4页
第4页 / 共60页
数据结构实验答案文档推荐_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《数据结构实验答案文档推荐》由会员分享,可在线阅读,更多相关《数据结构实验答案文档推荐(60页珍藏版)》请在金锄头文库上搜索。

1、 数据结构 实验指导 2013 2014 学年第 2学期 姓名 学号 班级 指导教师 潍坊学院计算机工程学院 2014 预备实验C语言的函数数组指针结构体知识 一 实验目的 1 复习 C语言中函数 数组 指针和结构体的概念 2 熟悉利用C 语言进行程序设计的一般方法 二 实验内容和要求 1 调试程序 输出100 以内所有的素数 用函数实现 include 判断一个数是否为素数 int isprime int n for int m 2 m m n m if n m 0 return 0 return 1 输出 100 以内所有素数 int main int i for i 2 i 100 i

2、if isprime i 1 printf 4d i return 0 运行结果 2 调试程序 对一维数组中的元素进行逆序排列 include define N 10 int main int a N 0 1 2 3 4 5 6 7 8 9 i temp printf the original Array is n for i 0 i N i printf 4d a i for i 0 i N 2 i 交换数组元素使之逆序 temp a i a i a N i 1 a N i 1 temp printf nthe changed Array is n for i 0 i N i printf

3、4d a i return 0 运行结果 3 调试程序 在二维数组中 若某一位置上的元素在该行中最大 而在该列中最小 则该 元素即为该二维数组的一个鞍点 要求从键盘上输入一个二维数组 当鞍点存在时 把鞍点 找出来 include define M 3 define N 4 int main int a M N i j k printf 请输入二维数组的数据 n for i 0 i M i for j 0 j N j scanf d for i 0 i M i 输出矩阵 for j 0 j N j printf 4d a i j printf n for i 0 i M i k 0 for j

4、1 ja i k k j for j 0 j M j 判断第 i 行的最大值是否为该列的最小值 if a j k a i k break if j M 在第 i 行找到鞍点 printf d d dn a i k i k return 0 运行结果 4 调试程序 利用指针输出二维数组的元素 include int main int a 3 4 1 3 5 7 9 11 13 15 17 19 21 23 int p for p a 0 p a 0 12 p if p a 0 4 0 printf n printf 4d p return 0 运行结果 5 调试程序 输入10 个学生的成绩 每个

5、学生成绩包括学号 姓名和三门课的成绩 要 求打印出三门课的平均成绩及成绩最高者的姓名和成绩 include define N 10 struct student char num 6 学号 char name 8 姓名 int score 3 成绩 float avr 平均成绩 stu N int main int i j max maxi sum float average for i 0 i N i 输入 10 个学生的成绩信息 printf n 请输入第 d 学生的成绩 n i 1 printf 学号 scanf s stu i num printf 姓名 scanf s stu i n

6、ame for j 0 j 3 j printf 成绩 d j 1 scanf d average 0 max 0 maxi 0 for i 0 i N i 计算平均成绩 找出成绩最高的学生 sum 0 for j 0 jmax max sum maxi i average 10 printf 学号姓名成绩 1 成绩 2 成绩 3 平均分 n for i 0 i 10 i printf 8s 10s stu i num stu i name for j 0 j 3 j printf 7d stu i score j printf 6 2f n stu i avr printf 平均成绩是 5

7、2f n average printf 最好成绩的学生是 s 总分是 d stu maxi name max return 0 运行结果 三 实验小结 对 C 语言中函数 数组 指针和结构体的概念 有了进一步的加深 并且可以利用C 语言 进行初步程序设计 四 教师评语 实验一顺序表与链表 一 实验目的 1 掌握线性表中元素的前驱 后续的概念 2 掌握顺序表与链表的建立 插入元素 删除表中某元素的算法 3 对线性表相应算法的时间复杂度进行分析 4 理解顺序表 链表数据结构的特点 优缺点 二 实验内容和要求 1 阅读下面程序 在横线处填写函数的基本功能 并运行程序 写出结果 include inc

8、lude define ERROR 0 define OK 1 define INIT SIZE 5 初始分配的顺序表长度 define INCREM 5 溢出时 顺序表长度的增量 typedef int ElemType 定义表元素的类型 typedef struct Sqlist ElemType slist 存储空间的基地址 int length 顺序表的当前长度 int listsize 当前分配的存储空间 Sqlist int InitList sq Sqlist L 初始化顺序表L 并将其长度设为0 int CreateList sq Sqlist L int n 构造顺序表的长度

9、为n int ListInsert sq Sqlist L int i ElemType e 在顺序线性表L中第 i 个 元素之前插入新的元素e int PrintList sq Sqlist L 输出顺序表的元素 int ListDelete sq Sqlist L int i 删除第 i 个元素 int ListLocate Sqlist L ElemType e 查找值为e 的元素 int InitList sq Sqlist L L slist ElemType malloc INIT SIZE sizeof ElemType if L slist return ERROR L len

10、gth 0 L listsize INIT SIZE return OK InitList int CreateList sq Sqlist L int n ElemType e int i for i 0 i n i printf input data d i 1 scanf d if ListInsert sq L i 1 e return ERROR return OK CreateList 输出顺序表中的元素 int PrintList sq Sqlist L int i for i 1 ilength i printf 5d L slist i 1 return OK PrintLi

11、st int ListInsert sq Sqlist L int i ElemType e int k if iL length 1 return ERROR if L length L listsize L slist ElemType realloc L slist INIT SIZE INCREM sizeof ElemType if L slist return ERROR L listsize INCREM for k L length 1 k i 1 k L slist k 1 k L slist i 1 e L length return OK ListInsert 在顺序表中

12、删除第i 个元素 int ListDelete sq Sqlist L int i if iL length return ERROR for p i 1 plength 1 p L slist p L slist p 1 L length return OK 在顺序表中查找指定值元素 返回其序号 int ListLocate Sqlist L ElemType e int main Sqlist sl int n printf please input n 输入顺序表的元素个数 scanf d if n 0 printf n1 Create Sqlist n InitList sq Crea

13、teList sq printf n2 Print Sqlist n PrintList sq else printf ERROR return 0 算法分析与运行结果 please input n 5 1 Create Sqlist input data 10 input data 25 input data 38 input data 43 input data 56 2 Print Sqlist 0 5 8 3 6Press any key to continue 2 为第 1 题补充删除和查找功能函数 并在主函数中补充代码验证算法的正确性 算法代码 int ListDelete sq

14、Sqlist L int i int p if iL length return ERROR for p i 1 plength 1 p L slist p L slist p 1 L length return OK 在顺序表中查找指定值元素 返回其序号 int ListLocate Sqlist L ElemType e int i 0 while ilength if ilength return i 1 else return 1 3 阅读下面程序 在横线处填写函数的基本功能 并运行程序 写出结果 include include define ERROR 0 define OK 1 t

15、ypedef int ElemType 定义表元素的类型 typedef struct LNode 线性表的单链表存储 ElemType data struct LNode next LNode LinkList LinkList CreateList int n 构造顺序表的长度 void PrintList LinkList L 输出带头结点单链表的所有元素 int GetElem LinkList L int i ElemType e 在顺序线性表L中 当第 i 个元素存在时 将其赋 值为 e LinkList CreateList int n LNode p q head int i

16、head LinkList malloc sizeof LNode head next NULL p head for i 0 idata 输入元素值 q next NULL 结点指针域置空 p next q 新结点连在表末尾 p q return head CreateList void PrintList LinkList L LNode p p L next p 指向单链表的第1 个元素 while p NULL printf 5d p data p p next PrintList int GetElem LinkList L int i ElemType e LNode p int j 1 p L next while pj if p j i return ERROR e p data return OK GetElem int main int n i ElemType e LinkList L NULL 定义指向单链表的指针 printf please input n 输入单链表的元素个数 scanf d if n 0 printf n1 Create LinkList

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

当前位置:首页 > 大杂烩/其它

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