没有合适的资源?快使用搜索试试~ 我知道了~
川师 数据结构 实验报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 144 浏览量
2021-10-10
19:26:20
上传
评论
收藏 629KB DOC 举报
温馨提示
试读
55页
川师 数据结构 实验报告.doc
资源推荐
资源详情
资源评论
《数据结构》实验教学大纲
学时课程总:64 学分:4
课程性质:必做 适用专业: 电脑科学与技术、软件工程、网络工程
教材及参考书:
数据结构〔C 语言版〕,严蔚敏 吴伟民,清华大学出版社,2011 年 11 月;
数据结构题集〔C 语言版〕实习题部分,清华大学出版社;
数据结构实验教程,王玲 刘芳 贺春林等,四川大学出版社,2010 年 10 月,
大纲执笔人:刘芳 大纲审定人:
一、实验课的性质与任务
电脑编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写电
脑程序仅仅了解电脑语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是
数据结构课程中学习和研究的内容。由于数据结构的原理和算法较抽象,而该课程一般在
本科低年级开设,对于电脑程序设计知识的初学者,理解和掌握其中的原理就显得较为困
难。
《数据结构》实验课程着眼于原理和应用的结合点,使读者学会如何将书上学到的知
识用于解决实际问题,培养软件工作需要的动手能力;另一方面,能使书上的知识变“活”,
起到深化理解和灵活掌握教学内容的目的。平时练习较偏重于如何编写功能单一的“小”算
法,而实习题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程
序设计基本技能和技巧,多人合作,以至一整套软件工作标准的训练和科学作风的培养。
此外,还有很重要的一点是:机器是比任何老师更严厉的检查者。
训练的重点在于基本的数据结构,而不是强调面面俱到。各实习单元与教科书的各章
只具有粗略的对应关系,一个实习题常常涉及到几部分教学内容。
二、实验课程目的与要求
1. 实验目的
根据《数据结构》课程的任务与要求,帮助学生拓宽知识面。并到达以下教学要求:
1) 学会分析研究电脑加工的数据结构的特性,以便为应用涉及的数据选择适当
的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间
分析的技术;掌握各种基本数据结构的逻辑结构和存储结构及相应算法。
2) 本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构
清楚、正确易读,符合软件过程的标准,从而培养学生的数据抽象能力;
3) 通过假设干数据结构应用实例,引导学生学习数据类型的使用,为今后学习
面向对象的程序做一些铺垫。
要求
1) 熟悉各种基本数据结构的定义,性质和特点,初步掌握算法分析的基本技巧
以及如何根据实际问题设计一个有效的算法。
2) 会书写类 C 语言的算法,并将算法转变为程序实现。
3) 正确理解各种数据结构的逻辑特性和存储表示和基本操作的算法实现,有较
强的逻辑分析能力。
4) 针对问题的不同选择合适的数据结构,提高算法设计的能力和动手实验的技
of accountability, redress of orders and prohibions. Strengthening the honesty and self-discipline of leading cadres honesty in polics and educaon work, enhance leaders ability to
resis
t
能。
三、实验项目及内容提要
数据结构实验课程 〔课程编号〕
序
号
实
验
项
目
编
号
实验名称
学
时
必
做
选
做
学
分
数
实验类型
内容提要
基
本
操
作
验
证
综
合
设
计
1
抽 象 数 据
类 型 的 表
示与实现
2 √ √ √
抽象数据类型的表
示与实现
2
线 性 表 实
验
4 √ √ √
线性表的存储实现
及有关应用
3
栈 和 队 列
实验
4 √ √ √
栈和队列的基本操
作及其实现,以及
典型应用举例
4
稀 疏 矩 阵
实验
2 √ √
稀疏矩阵的压缩存
储
5
树 和 二 叉
树实验
4 √ √
树的两种种存储结
构,及各种操作的
算法实现〔建立、
遍历、线索化、最
优二叉树〕
6
图 及 其 应
用实验
4 √ √
图的两种基本存储
结构,及各种操作
的 算 法 实 现 〔 建
立、遍历、图的典
型应用〕
7
查 找 和 排
序实验
4 √ √ √
各种基本的查找和
排序算法及其实现
分析
四、实验内容安排:
实验一 抽象数据类型的表示与实现
〔 验证性实验 2 学时〕
1.目的要求:
1) 熟悉类 C 语言的描述方法,学会将类 C 语言描述的算法转换为 C 源程序实现;
2) 理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型〔如三元组〕。
3) 认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结
果,并结合程序进行分析。
2. 实验内容:
of accountability, redress of orders and prohibions. Strengthening the honesty and self-discipline of leading cadres honesty in polics and educaon work, enhance leaders ability to
resis
t
1〕编程实现抽象数据类型三元组的定义、存储、基本操作〔最大值、最小值、平均值
等的求解〕,并设计一个主菜单完成各个功能的调用。
1) PC 机
2) Turbo C 2.0 或 Visual C++
源代码:
#include "head.h"
void main()
{
Triplet p;
ElemType e,v1,v2,v3;
int i,choice;
printf("输入三个数,建立一个三元组\n");
scanf("%d%d%d",&v1,&v2,&v3);
if (InitTriplet(p,v1,v2,v3)==OVERFLOW)
printf("分配失败,退出程序!");
else
do
{
printf("1:取三元组第 i 个元素\n");
printf("2:判断三元组元素是否递增\n");
printf("3:求最大值\n");
printf("4:置换第 i 个元素\n");
printf("0:结束!\n");
printf("请输入选择!\n");
//getchar();
scanf("%d",&choice);
switch (choice)
{
case 1:
printf("\ni=");
scanf("%d",&i);
if (Get(p,i,e)==ERROR) printf("i 值不合法\n");
else
printf("第%d 个元素的值为: %d\n",i,e);
break;
case 2:
if (IsAscending(p)==OK)
printf("三元组递增\n");
else if(IsDescending(p)==OK)
printf("三元组递减!\n");
of accountability, redress of orders and prohibions. Strengthening the honesty and self-discipline of leading cadres honesty in polics and educaon work, enhance leaders ability to
resis
t
else
printf("三元组非递增有序\n");
break;
case 3:
Max(p,e);
printf("最大值是: %d\n",e);break;
case 4:
printf("\ni=");
scanf("%d",&i);
printf("\nx=");
scanf("%d",&e);
if (Put(p,i,e)==ERROR) printf("i 值不合法\n");
else printf(" 置 换 第 %d 个 元 素 后 的 3 个 元 素 分 别 为 : %d,%d,%d\
n",i,p[0],p[1],p[2]);break;
case 0:
printf("操作结束!"); break;
default: printf("输入选择出错!\n");
}
}while(choice!=0);
DestroyTriplet(p);
}
#ifndef _FUNC_H
#define _FUNC_H
#define OK 1
#define ERROR 0
#define OVERFLOW -1
typedef int Status;
typedef int ElemType;
typedef ElemType *Triplet;
//函数原型
Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3); //初始化
Status DestroyTriplet(Triplet &T); //销毁指针
Status Get(Triplet T,int i,ElemType &e); //获取值,注意多个返回值的用法
Status Put(Triplet &T,int i,ElemType e); //设置值
Status IsAscending(Triplet T); //是否升序,用 const 防止改变
Status IsDescending(Triplet T); //是否降序
Status Max(Triplet T,ElemType &e); //最大值
Status Min(Triplet T,ElemType &e); //最小值
of accountability, redress of orders and prohibions. Strengthening the honesty and self-discipline of leading cadres honesty in polics and educaon work, enhance leaders ability to
resis
t
#endif
#include "stdio.h"
#include "head.h"
#include "malloc.h"
#include "stdlib.h"
Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3)
{
T=(ElemType *)malloc(3*sizeof(ElemType));
if(!T)
exit(OVERFLOW);
T[0] = v1;
T[1] = v2;
T[2] = v3;
return OK;
}
Status DestroyTriplet(Triplet &T)
{
free(T);
T=NULL;
return OK;
}
Status Get(Triplet T,int i,ElemType &e)
{
if(i<0||i>2)
return ERROR;
e = T[i-1];
return OK;
}
Status Put(Triplet &T,int i,ElemType e)
{
if(i<0||i>2)
return ERROR;
T[i-1] = e;
return OK;
}
Status IsAscending(Triplet T)
{
return (T[0] <= T[1]) && (T[1] <= T[2]);
of accountability, redress of orders and prohibions. Strengthening the honesty and self-discipline of leading cadres honesty in polics and educaon work, enhance leaders ability to
resis
t
剩余54页未读,继续阅读
资源评论
学习使人快乐张
- 粉丝: 14
- 资源: 6万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功