三元组--数据结构
来源:互联网 发布:老男孩linux运维pdf 编辑:程序博客网 时间:2024/04/28 22:25
欢迎访问我的新博客:http://www.milkcu.com/blog/
原文地址:http://www.milkcu.com/blog/archives/1368823560.html
摘自《数据结构:C语言版》(严蔚敏,吴伟民编著)第12页例1-7。
抽象数据类型Tiplet的表现与实现。
C语言(本书未直接采用类和对象等设施,而是从C语言中精选了一个核心子集,并增添C++语言的引用调用参数传递方式等,构成一个类C描述语言)源代码如下:
# include <stdio.h># include <stdlib.h># define TRUE 1# define FALSE 0# define OK 1# define ERROR 0# define INFREASIBLE -1# define OVERFLOW -2typedef int Status;typedef int ElemType;typedef ElemType * Triplet;Status InitTriplet(Triplet & T, ElemType v1, ElemType v2, ElemType v3);Status DestroyTiplet(Triplet & t);Status Get(Triplet T, int i, ElemType & e);Status Put(Triplet & T, int i, ElemType & e);Status IsAscending(Triplet T);Status IsDescending(Triplet T);Status Max(Triplet T, ElemType & e);Status Min(Triplet T, ElemType & e);Status Show(Triplet T);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 DestroyTiplet(Triplet & T){free(T);T = NULL;return OK;}Status Get(Triplet T, int i, ElemType & e){if(i < 1 || i > 3) {return ERROR;}e = T[i - 1];return OK;}Status Put(Triplet & T, int i, ElemType e){if(i < 1 || i > 3) {return ERROR;}T[i - 1] = e;return OK;}Status IsAscending(Triplet T){return (T[0] <= T[1]) && (T[1] <= T[2]);}Status IsDescending(Triplet T){return (T[0] >= T[1]) && (T[1] >= T[2]);}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;}Status Min(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;}Status Show(Triplet T){int i;for(i = 0; i < 3; i++) {printf("%d ", T[i]);}putchar('\n');return OK;}int main(void){Triplet T;InitTriplet(T, 9, 3, 0);Show(T);ElemType e;Get(T, 2, e);printf("%d\n", e);Put(T, 1, 5);Show(T);printf("%d %d\n", IsAscending(T), IsDescending(T));ElemType e1, e2;Max(T, e1);Min(T, e2);printf("%d %d\n", e1, e2);}
参考资料
- 《数据结构:C语言版》(严蔚敏,吴伟民编著)
(全文完)
- 数据结构之三元组
- 数据结构实现三元组
- 三元组--数据结构
- 数据结构三元组
- 数据结构之三元组
- 数据结构 三元组
- 数据结构之三元组
- 数据结构:三元组
- 《数据结构》---三元组的实现
- 数据结构-稀疏矩阵(三元组表示)
- 数据结构作业稀疏矩阵三元组表示
- 数据结构-三元组表示矩阵(C++)
- 数据结构之三元组的操作
- 【数据结构】 稀疏矩阵 转换成三元组
- 【数据结构】 三元组的转置
- PHP 数据结构 算法 三元组 Triplet
- 数据结构 三元组 C语言实现
- 数据结构-数组-稀疏矩阵三元组
- OpenStack Nova Internals – pt1 – Overview
- 大数问题,两大数相乘 +方法1
- 大数问题+n!
- java.lang.ClassCastException异常
- 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印(16)
- 三元组--数据结构
- 基于TCP协议的网络编程
- C#委托
- javasprict中Document对象
- javascript中事件
- javascript中DOM编程
- PHP基础语法2
- PHP动态创建Web站点
- nova-rootwrapper相关