抽象数据类型三元组Triplet的表示和实现。

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。按“值”的不同特性,高级程序语言中的数据类型可分为两类:一类是非结构的原子类型,原子类型的值是不可分解的;另一类是结构类型,结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。

抽象数据类型(Abstract Data Type,简称ADT)是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。

** 抽象数据类型三元组Triplet的表示和实现//- - - - - - - - -采用动态分配的顺序存储结构- - - - - -
typedef ElemType * Triplet; //由 InitTriplet 分配3个元素存储空间//- - - - - - - - -基本操作的函数原型说明- - - - - -
Status InitTriplet (Triplet &T, ElemType v1, ElemType v2, ElemType v3);// 操作结果:构成了三元组T,元素 e1, e2 和 e3 分别被赋以参数 v1,v2 和 v3 的值。Status DestroyTriplet (Triplet &T);// 操作结果:三元组 T 被销毁。Status Get (Triplet T, int i, ElemType &e);// 初始条件:三元组 T 已经存在,1<=i<=3。// 操作结果:用 e 返回 T 的第 i 元的值。Status Put (Triplet &T, int i, ElemType e);// 初始条件:三元组 T 已存在,1<=i<=3.// 操作结果:改变 T 的第 i 元的值为e。Status IsAscending (Triplet T);// 初始条件:三元组 T 已存在。// 操作条件:如果 T 的3个元素按升序排列,则返回1,否则返回0。Status IsDescending (Triplet T);// 初始条件:三元组 T 已存在。// 操作条件:如果 T 的3个元素按降序排列,则返回1,否则返回0。Status Max (Triplet T, ElemType &e);// 初始条件:三元组 T 已存在。// 操作结果:用 e 返回 T 的3个元素中的最大值。Status Min (Triplet T, ElemType &e);// 初始条件:三元组 T 已存在。// 操作结果:用 e 返回 T 的3个元素中的最小值。** malloc函数是在内存的动态存储区中分配一个长度为size的连续空间。
** 其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。
** malloc的语法是:指针名 =(数据类型 * )malloc(长度); 其中(数据类型*)表示指针。//- - - - - - - - - - - - -基本操作的实现- - - - - - - - - -
Status InitTriplet (Triplet &T, ElemType v1, ElemType v2, ElemType v3) {// 构造三元组 T,依位置 T 的 3 个元素的初值为 v1,v2,v3。T = (ElemType * ) malloc (3 * sizeof(ElemType));     // 分配 3 个元素的存储空间if (!T) exit(OVERFLOW);     // 分配存储空间失败T[0] = v1; T[1] = v2; T[2] = v3;return OK;
}// InitTripletStatus DestroyTriplet (Triplet &T) {// 销毁三元组 T。free(T);      T = NULL;return OK;
}// DestroyTripletStatus Get (Triplet T, int i, ElemType &e) {// 1<=i<=3,用 e 返回 T 的第 i元的值。if (i<1 || i>3) return ERROR;e = T[ i-1 ];return OK;
}// GetStatus Put (Triplet &T, int i, ElemType e) {// 1<=i<=3,置 T 的第 i 元的值为e。if ( i<1 || i>3 ) return ERROR;T[ i-1 ] = e;return OK;
}// PutStatus IsAscending (Triplet T) {// 如果 T 的3个元素按升序排列,则返回1,否则返回0。return (T[0] <= T[1]) && (T[1] <= T[2]);
}// IsAscendingStatus IsDescending (Triplet T) {// 如果 T 的3个元素按降序排列,则返回1,否则返回0。return (T[0] >= T[1]) && (T[1] >= T[2]);
}// IsDescendingStatus Max (Triplet T, ElemType &e) {// 用 e 返回指向 T 的最大元素的值。e = (T[0] >= T[1]) ? ((T[0] >= T[2]) ? T[0] : T[2]) : ((T[1] >= T[2]) ? T[1] : T[2]);
}// MaxStatus Min (Triplet T, ElemType &e) {// 用 e 返回指向 T 的最小元素的值。e = (T[0] <= T[1]) ? ((T[0] <= T[2]) ? T[0] : T[2]) : ((T[1] <= T[2]) ? T[1] : T[2]);
}// Min

数据结构--抽象数据类型三元组Triplet的表示和实现相关推荐

  1. 抽象数据类型三元组Triplet基本操作与实现 严蔚敏版

    这个博客基本操作大部分来自教材<数据结构C语言版>严蔚敏版,实现了书中的大部分功能,并且用了三个文件. 一个是主函数,一个是功能模块,一个是头文件定义,用VC6.0++完成 //头文件声明 ...

  2. 抽象数据类型三元组表示与实现

    1,抽象数据类型概念: (1)由用户定义,用以表示应用问题的数据模型:(2)由基本的数据类型组成, 并包括一组相关的操作: 2,抽象数据类型用三元组表示:ADT = (D,S,P) D: 数据对象  ...

  3. 数据结构-抽象数据类型

    抽象数据类型 抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作,简称ADT,(Abstract Data Type). ADT与具体的物理存储无关,不论ADT内部如何变化,都不影响外部使用 ...

  4. 设计实现抽象数据类型“三元组”,要求动态分配内存

    基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组. #include <stdio.h> #in ...

  5. (笔记)数据结构--抽象数据类型的定义

    例子

  6. 三元组的抽象数据类型

    三元组的抽象数据类型 1.基本要求 2.基本要求 3.带菜单版本 1.c++实现 2.C语言实现 1.基本要求 (1)写出抽象数据类型的定义,即数据对象.数据关系.基本操作 (2)用结构体封装需要定义 ...

  7. 实验报告:抽象数据类型的表现和实现

    实验报告:抽象数据类型的表现和实现 实验内容 基本要求: 设计实现抽象数据类型"三元组",要求动态分配内存.每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元 ...

  8. 抽象数据类型与计算机内部表示和实现无关,实验02 抽象数据类型的表示与实现.doc...

    文档介绍: EvaluationWarning:ThedocumentwascreatedwithSpire..蕊歼植罩胖什塌浦有夏禽院灼屉重陕馆谗肘钡枪帽潭裙富队捌狞栅试颅蛆占芝虞却轮侠靛崎刑漆联斤 ...

  9. C语言抽象数据类型实现复数的加减乘运算、输入实部虚部输出复数,输入复数输出实部虚部

    运行结果 #include<stdio.h> #include<stdlib.h> //头文件 typedef struct Complex //定义结构体类型Complex ...

最新文章

  1. win7 计算机不显示收藏夹,Win7电脑收藏夹不能用怎么解决?Win7电脑收藏夹不能用解决方法...
  2. openpyxl方法记录
  3. 自动升级失败,缺少System.resources.dll?
  4. JavaWeb项目架构之NFS文件服务器
  5. 赞!清华大学发布首个自动图机器学习工具包AutoGL
  6. MongoDB之 写安全(Write Concern)
  7. (干货)css常用技巧
  8. 鱼哥,我怕蛇,可以搞Python么?
  9. MATLAB生成(对角线上元素相同的)三对角矩阵的实例
  10. Endnote常见错误
  11. 运营支持是干什么_运营|你们运营到底是干什么的?
  12. <Halcon> 区域划分算子partition_dynamic和partition_rectangle
  13. Java使用PDFBox将多个PDF合并为单个PDF
  14. linux swap不可用,linux 禁用 swap
  15. 他人——2015实习招聘经验
  16. 分享一个 Excel 做的三国杀 游戏 ,想学EXCEL的绝对受用。
  17. 大数据时代信息轰炸来袭 购房四大黄金法则
  18. iOS开发中的锁实现猜测
  19. 一、自动化测试——Airtest+Poco快速上手
  20. 网上的音乐怎么下载成mp3格式歌曲?这3种一键下载的方法亲测好用!

热门文章

  1. mac画图工具 OmniGraffle (三)基础绘图和模具
  2. C++中 struct tm 和 time_t 时间和日期的使用方法
  3. python网络爬虫工具库集合
  4. include 用法
  5. 《韩熙载夜宴图》详解
  6. ping 不通 华为三层交换机vlan_华为三层交换机如何让VLAN间不能互通配置
  7. 房天下解密(RSA)
  8. 自制计算机病毒 [不要用于非法用途]
  9. 职场小故事,工作大道理(16)
  10. 汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺