首页 考试资料幻灯片工程技术公务员考试小学教学中学教学大学教学外语资料
数据结构实验书


//定义一个一维数组存放数据元素值,

//为了使用习惯,数组的下标从 1 开始 【算法描述】 void scanf(&n); for (i=1;i<=n;i++) } void Maxmin(int x[],int n,int &max,int &min){ Create(ElemType x[],int &n){ // 算法描述可以省略格式串,以及局部变量的说明

scanf(x[i]);

//求数组 a 中的 n 个数据的最大值和最小值 max=min=a[1]; for (i=2;i<=n;i++) if if } }//Maxmin 【C 源程序】 #define MAXNUM 20 { max=a[i]; min=a[i];

(a[i]>max) (a[i]<min)

typedef int void

ElemType; x[],int *n){

Create(ElemType

int i; printf("nPlease scanf("%d",&*n); printf("Please input %d data:",*n); input n=");

for (i=1;i<=*n;i++) } void Maxmin(ElemType

scanf("%d",&x[i]);

x[],int n,int

*max,int

*min){

int i; *max=*min=x[1]; for (i=1;i<=n;i++) if if } } main(){ ElemType a[MAXNUM+1]; (x[i]>*max) (x[i]<*min) { *max=x[i]; *min=x[i];

int i,n,max,min; Create(a,&n); printf("nCreate is completed!nThe data is:");

for (i=1;i<=n;i++)

printf("%4d",a[i]);

Maxmin(a,n,&max,&min); printf("nmax=%d } min=%d",max,min);

【测试数据】 1. 根据运行提示,输入元素的个数和元素值(↙代表键入回车,以后各章节沿用此符号,不在说明),建 立一维数组,并求最大和最小值 Please input n=10↙

Please Create

input 10 data: is completed!

10

1

44

23

78

90

100 41

87

66↙

The data is: 10 1 max=100 min=1

44 23

78

90

100 41 87 66

2. 读者可根据程序运行提示,自行输入元素的个数和元素的值,然后观察和分析运行的结果。 【说明】 1. C 语言函数参数的传递形式都是传值方式,当用简单变量作为函数参数实现的参数传递形式是:函数 调用时,实参的值单向传递给形参变量;当函数调用返回时,形参变量所占的内存单元被释放,结果被调 用函数至多只能通过函数名返回一个值给调用函数, 当问题中需要被调用函数返回多个数据给调用函数时, 用简单变量作函数参数就办不到。如上例函数 Maxmin 要返回两个数据 max 和 min 给调用函数时,我们可以 采用指针、指针变量作为形参和实参,具体用法通过上例可以简单地说明。 2. 要将数组中的一组数据作为参数传到函数中去,可以采用数组名作函数参数,在使用时,将数组名作 为函数的实际参数,同时要求形式参数也为数组(当然也可以是指向数组的指针),因为数组名代表数组 的首地址,故在进行函数调用时,将实参数组的首地址传递给形参数组,实际结果是同一数组采用不同的 数组名(甚至实参数组名和形参数组名可以相同)。形参数组并不另外分配内存单元,只是共享实参数组 的单元。从上例可以看到,在函数 Create 中建立的数组 x,实际上就是实参数组 a。 【实验题】 1. 在上例的基础上,修改函数 Maxmin,使其还能计算这些数据的平均值,并返回;对上例采用数组名作 为函数的实参和形参,修改成用指向数组的指针作参数完成相应功能。 2. 设计算法将一组数据中的最大值和最小值进行交换,然后输出这组数据。要求上机编程实现。 3. 用冒泡排序法将一组数据从小到大重新排列并输出。

第三节 抽象数据类型三元组的定义、表示和实现

【问题描述】 已知一个抽象数据类型三元组的定义如下: ADT Triplet{ 数据对象:D={e1,e2,e3|e1,e2,e3∈ElemSet(定义了关系运算的某个集合)} 数据关系:R={<e1,e2>,<e2,e3>} 基本操作: InitTriplet(&T) 构造一个三元组 T。

DestroyTriplet(&T) Get(T,i,&e) Put(&T,i,e) IsAscending(T)

销毁三元组 T。 取三元组 T 的第 i 个元,并用参数 e 返回。 修改三元组 T 的第 i 个元的值为 e。 判断三元组 T 的三个元是否按升序排列。 IsDescending(T) 判断三

元组 T 的三个元是否按降序排列。 Max(T,&e) Min(T,&e) }ADT Triplet 求三元组 T 的三个元的最大值,并用 e 返回。 求三元组 T 的三个元的最小值,并用 e 返回

现要求设计一个可进行三元组的上述基本操作的演示程序。 【数据描述】 定义三元组为由三个相互之间存在次序关系的元素构成的抽象数据类型, typedef int ElemType;//定义数据元素类型 ElemType,此处为 int,

//用户可根据具体情况自己定义 typedef ElemType 【算法描述】 Status InitTriple (Triplet &T){ *Triplet//采用动态分配的顺序存储结构

//从键盘输入三个数据,构造一个三元组 T T=(ElemType*)malloc(3*sizeof(ElemType)); if (!T) exit OVERFLOW; //存储分配失败

scanf("%d%d%d",&v1,&v2,&v3); T[0]=V1;T[1]=V2;T[2]=V3; }//InitTriplet Status DestroyTriplet(Triplet &T){ //销毁三元组 T

free(T);T=NULL; }//DestroyTriplet Status if Get(Triplet T,int i,ElemType return ERROR; &e){ //用 e 返回 T 的第 i 个元的值

(i<1||i>3)

e=T[i-1]; return }//Get OK;

Status if

Put(Triplet return

&T, int i, ElemType e){ ERROR;

//用 e 修改第 i 个元的值

(i<1||i>3)

T[i-1]=e; return }//Put Status return IsAscending(Triplet T){ //判断三元组元素是否递增 OK;

(T[0]<T[1])&&(T[1]<T[2]); }//IsAscending

Status return

IsDescending(Triplet

T){

//判断三元组元素是否递减

(T[0]>T[1])&&(T[1]>T[2]); }//IsDescending

Status

Max(Triplet T,ElemType

&e){

//取三元组的最大元

e=(T[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2]):(T[1]>=T[2])?T[1]:T[2]); return OK; }//Max Status Min(Triplet T,ElemType &e){ //取三元组的最小元

123456789101112131415161718192021222324252627282930

 


 

  【Top

最新搜索

 

数据结构实验指导书 - 数据结构 实验指导书 院别 专业 班级 姓名 计算机学院编 实验一 线性表的顺序存储实验 一、实验目的及要求 1、掌握在TC环境下调试顺序表...

数据结构与算法实验指导书90969 - 数据结构与算法实验指导书 计算机与信息学院 实验一 【实验目的】 顺序表 熟练掌握线性表在顺序存储结构上的基本操作。 【实验...

数据结构实验指导书02 很好!很好!隐藏&gt;&gt; 实验二 2.1 实验目的: 线性表 (1)掌握线性表的顺序存储结构的定义及 C 语言实现。 (2)掌握线性表在顺序存储结构即...

数据结构实验说明书新版 - the principl e of simplified E IA of constr uction pr oject s in the regi on. In te...

数据结构实验指导书 - 数据结构实验指导(C语言版)... 数据结构实验指导书_IT/计算机_专业资料。数据结构实验指导(C语言版) 数据结构实验指导书 江西农业大学计算机与...

数据结构试验指导书V2[1].0 - V 2.0 数据结构与算法 实验指导书 编写: 编写:陆绍飞 校核: 校核:___ 湖南大学软件学院 2011 年 9 月 湖南大学软件学...

数据结构实验指导书(2012.9) - 1.2 实验报告(文档)书写规范 实验报告(文档)应包括以下 7 个方面的内容: 1、问题分析 根据对实验任务的理解, 以无歧义的陈述...

09级《数据结构》实验指导书 - 《数据结构实验指导书》 潘向辉/吴学毅编写 印包学院数字媒体技术专业 2011 年 3 月 实验说明 实验说明 【实验环境】 操作系统:...

空间数据结构基础实验指导书 隐藏&gt;&gt; 《空间数据结构基础》 课程实习指导书实习周数:2 周 学分数:2 一、实习目的 数据结构是一门重要的专业基础课,其特点是理论...

《数据结构(C 语言版) 》实验指导书(非计算机专业适用) 广州大学 2013.1 目 录 实验一 线性表的顺序存储及其操作... 1 实验二 线性表的链式存储及其操作......


 

热点推荐