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


e=(T[0]<=T[1])?((T[0]<=T[2])?T[0]:T[2]):(T[1]<=T[2])?T[1]:T[2]) ; return OK; }//Max 【C 源程序】 #include #include typedef <stdio.h> <stdlib.h> int ElemType; /*包含动态分配头函数*/ /*定义数据元素类型*/ /*采用动态分配的顺序存储结构表示三元组*/

typedef ElemType *Triplet; typedef int #define OK #define ERROR Status; 1 0

#define OVERFLOW -2 Status InitTriplet (Triplet */ *T){

/*构造三元组 T

ElemType

v1, v2,

v3;

*T=(ElemType*)malloc(3*sizeof(ElemType)); if (*T==0) return OVERFLOW; /*存储分配失败*/

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

free(*T);*T=NULL; } Status if Get(Triplet T,int i,ElemType ( i<1||i>3) return ERROR; *e){ /*用 e 返回 T 的第 i 个元的值*/

*e=T[i-1]; return } Status if Put(Triplet *T,int i,ElemType ( i<1||i>3) return ERROR; e){ /*修改三元组第 i 个元的值为 e*/ OK;

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

return } Status

(T[0]<T[1])&&(T[1]<T[2]);

IsDescending(Triplet return

T){

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

(T[0]>T[1])&&(T[1]>T[2]);

} Status Max(Triplet T,ElemType *e){ : /*取三元组的最大元*/ ((T[1]>=T[2])?T[1]:T[2]);

*e=(T[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2]) return } Status Min(Triplet T, ElemType *e){ OK;

/*取三元组的最小元*/

*e=(T[0]<=T[1])?((T[0]<=T[2])?T[0]:T[2]) return } void main(){ OK;

:

((T[1]<=T[2])?T[1]:T[2]);

Triplet T; ElemType e; i;

int select,

printf("输入三个数,建立一个三元组:n"); if (InitTriplet(&T)==OVERFLOW) printf("分配失败,退出程序!"); else /*否则显示操作菜单,输入操作选择,直到结束*/ do { printf("1:取三元组第 i 个元素n"); printf("2:修改三元组第 i 个元素n" ); printf("3:判断三元组元素是否递增n"); printf("4:判断三元组元素是否递减n"); printf("5:取三元组的最大元n"); printf("6:取三元组的最小元n"); printf("0:结束n"); scanf("%d",&select); switch case 1: (select) {

printf("ni=");scanf("%d",&i); if (Get(T,i,&e)==ERROR) printf("i 值不合法n");

else printf("第 i 个元的值为%dn",e);break; case if 2:printf("ninput i,e=");scanf("%d%d",&i,&e); (Put(&T,i,e)==ERROR) printf("i 值不合法n"); else printf("%4d%4d%4dn",T[0],T[1],T[2]);break; case 3:if else (IsAscending(T)==1) printf("三元组递增有序n");

printf("三元组非递增有序n");break;

case

4:if else

(IsDescending(T)==1)

printf("三元组递减有序n");

printf("三元组非递减有序n");break;

case

5:Max(T,&e); printf(" 三元组的最大元为%dn",e);break;

case

6:Min(T,&e); printf(" 三元组的最小元为%dn",e);break;

case

0:printf("操作结束n");break;

default:printf("输入选择出错!n"); }/*switch*/ }while (select!=0);

DestroyTriplet(&T);/*销毁三元组*/ }/*main*/ 【测试数据】 由读者在运行程序时,根据运行提示输入三个数据,建立一个三元组,然后根据运行的功能菜单提示输入 你的选择,完成三元组的各种操作。 【说明】 抽象数据类型的定义是面向用户、在高级程序设计语言的虚拟层次上进行讨论的,它的实现细节取决于所 选用的语言环境。希望读者通过本例对抽象数据类型的定义和实现有一定的理解。 1. 上例采用动态分配的顺序存储结构来表示三元组,目的是想更充分地利用存储空间,并让读者进一步 巩固有关存储单元的动态分配和释放的知识;后面章节会多次涉及到这方面的知识。随着学习的深入,你 会对这样的表示方法越来越熟悉。 2. 所有的基本操作都是通过函数来实现,在编写完整的程序时,应充分考虑这些操作的调用形式,并设 计相应的主调函数实现所定义的抽象数据类型。 3. 对于整个程序之前的一些预编译命令(如文件的包含命令,一些预定义常量和类型)的说明在以后的 程序中会经常用到,故建议将这些命令写成一个头文件,以后要用到时直接用#include 包含进来即可。 【实验题】 1. 完善以上的示例,实现三元组的其它运算,如:两个三元组的积与和,三元组的逆置,将三元组的三 个元按递增/递减排序等功能。 2. 考虑用一维数组表示三元组(当然三元组的三个元素是同一类型的),并编程实现上例的有关三元组

的基本操作 。 3. 考虑用结构体表示三元组(三元组的三个元素可以是不同类型的),并编程实现三元组的基本操作。

第二章 线性表及其应用
【实验目的】 1. 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现; 2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点; 3. 掌握线性表的动态分配顺序存储结构的定义和基本操作的实现; 4. 通过本章实验帮助学生加深对 C 语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等 各种基本操作)。

第一节 知识准备
一、线性表的逻辑结构 线性表是由一组具有相同特性的数据元素组成的有限序列。至于每个数据元素,它可以是一个数,一个符 号,也可以是一页书,甚至更复杂的信息。 例如:26 个英文字母构成一个线性表 (A,B,C,?,Y,Z) (45,45,32,65,123)

一串数字构成另一个线性表

每个数据元素可以由若干数据项组成,常把此数据元素称为记录。能唯一标识一个记录的数据项的值称为 关键字。如:一个学校的学生情况表如表 2-1 所示,表中每个学生的情况为一个记录,它由学号、姓名、 性别、年龄、年级等五个数据项组成。

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 实验二 线性表的链式存储及其操作......


 

热点推荐