第一章 绪论

您所在的位置:网站首页 遗传学绪论 第一章 绪论

第一章 绪论

2023-07-11 07:42| 来源: 网络整理| 查看: 265

1. 三元组的实现

头文件:

Status.h

/* DataStructure 预定义常量和类型 */ /* 函数结果状态码 */ #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIABLE -1 typedef int Status; /* Status 是函数的类型,其值是函数结果状态代码,如 OK 等 */ typedef int Bollean; /* Boolean 是布尔类型,其值是 TRUE 或 FALSE */

ElemType.h

typedef int ElemType; /* 定义抽象数据类型ElemType在本程序中为整型 */ typedef ElemType* Triplet; /* 由InitTriplet分配三个元素存储空间 */

BasicOperation.h

/* 抽象数据类型 Triplet 和 ElemType 的基本操作头文件 */ #include "Status.h" #include "ElemType.h" #define SIZE 3 /* 操作结果:构造三元组 T,依次置 T 的三个元素的初值为 v1, v2 和 v3 */ Status InitTriplet(Triplet* T, ElemType v1, ElemType v2, ElemType v3); /* 操作结果:三元组 T 被销毁 */ Status DestroyTriplet(Triplet* T); /* 初始条件:三元组 T 已存在,1 ≤ i ≤ 3。操作结果:用 e 返回 T 的第 i 元的值 */ Status Get(Triplet T, int i, ElemType* e); /* 初始条件:三元组 T 已存在,1 ≤ i ≤3。操作结果:改变 T 的第 i 元的值为 e */ Status Put(Triplet T, int i, ElemType e); /* 初始条件:三元组 T 已存在。操作结果:如果 T 的三个元素按升序排列,返回 1,否则返回 0 */ Status IsAscending(Triplet T); /* 初始条件:三元组 T 已存在。操作结果:如果 T 的三个元素按降序排列,返回 1,否则返回 0 */ Status IsDescending(Triplet T); /* 初始条件:三元组 T 已存在。操作结果:用 e 返回 T 的三个元素中的最大值 */ Status Max(Triplet T, ElemType* e); /* 初始条件:三元组 T 已存在。操作结果:用 e 返回 T 的三个元素中的最小值 */ Status Min(Triplet T, ElemType* e);

源文件:

BasicOperation.c

/* 抽象数据类型 Triplet 和 ElemType 的基本操作实现 */ #include "BasicOperation.h" #include /* 提供 malloc() 函数原型*/ #include /* 定义 OVERFLOW 的值为 3 */ /* 操作结果:构造三元组 T,依次置 T 的三个元素的初值为 v1, v2 和 v3 */ Status InitTriplet(Triplet* T, ElemType v1, ElemType v2, ElemType v3) { *T = (ElemType*)malloc(sizeof(ElemType) * SIZE); if (!(*T)) { exit(OVERFLOW); } (*T)[0] = v1; (*T)[1] = v2; (*T)[2] = v3; return OK; } /* 操作结果:三元组 T 被销毁 */ Status DestroyTriplet(Triplet* T) { free(*T); *T = NULL; return OK; } /* 初始条件:三元组 T 已存在,1 ≤ i ≤ 3。操作结果:用 e 返回 T 的第 i 元的值 */ Status Get(Triplet T, int i, ElemType* e) { if (i < 1 || i > 3) { return ERROR; } *e = T[i - 1]; return OK; } /* 初始条件:三元组 T 已存在,1 ≤ i ≤3。操作结果:改变 T 的第 i 元的值为 e */ Status Put(Triplet T, int i, ElemType e) { if (i < 1 || i > 3) { return ERROR; } T[i - 1] = e; return OK; } /* 初始条件:三元组 T 已存在。操作结果:如果 T 的三个元素按升序排列,返回 1,否则返回 0 */ Status IsAscending(Triplet T) { return (T[0] = T[2]); } /* 初始条件:三元组 T 已存在。操作结果:用 e 返回 T 的三个元素中的最大值 */ 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; } /* 初始条件:三元组 T 已存在。操作结果:用 e 返回 T 的三个元素中的最小值 */ Status Min(Triplet T, ElemType* e) { *e = (T[0]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3