抽象数据类型Triplet的C语言实现
#include <stdio.h>
#include <stdlib.h> #define ERROR 0
#define OK 1 typedef int Status;
typedef int Elemtype;
typedef Elemtype * Triplet; Status InitTriplet(Triplet *t, Elemtype v0, Elemtype v1, Elemtype v2){ //三元组t的初始化 *t = (Elemtype *)malloc( * sizeof(Elemtype));
if (!*t)
exit(-); (*t)[] = v0;
(*t)[] = v1;
(*t)[] = v2; return OK;
} Status DestroyTriplet(Triplet *t){//三元组t的释放 int* t=t free(*t);
*t = NULL;
return OK;
} Status Get(Triplet t, int i, Elemtype *e){//得到三元组t中的某个元素
if (i< || i> || t == NULL)
return ERROR;
*e = t[i - ];
//printf("三元组中第%d个元素为%d\n",(i+1),t[i]);
return OK;
} Status Put(Triplet t, int i, Elemtype e){
if (t == NULL)
return ERROR;
if (i< || i> || t == NULL)
return ERROR;
t[i] = e;
return OK;
} Status Show(Triplet t){
if (t == NULL)
return ERROR;
for (int i = ; i < ; i++)
printf("第%d个元素为%d\n", i + , t[i]);
return OK;
} Status isAscending(Triplet t){
if (t == NULL)
return ERROR;
return(t[] <= t[] && t[] <= t[]);
} Status isDescending(Triplet t){
if (t == NULL)
return ERROR;
return(t[] >= t[] && t[] >= t[]);
} Status Max(Triplet t, Elemtype *e){
if (t == NULL)
return ERROR;
*e = ((t[] > t[] ? t[] : t[])>t[]) ? (t[] > t[] ? t[] : t[]) : t[];
return OK;
} Status Min(Triplet t, Elemtype *e){
if (t == NULL)
{
printf("t为空\n");
return ERROR;
}
*e = ((t[] < t[] ? t[] : t[])<t[]) ? (t[] < t[] ? t[] : t[]) : t[];
return OK;
} void main(){
Status i;//程序状态
Elemtype p;//用于主函数和子函数的内存共享
Elemtype max;
Elemtype min;
Triplet t;
int di = ;
i = InitTriplet(&t, , , );
if (i){
i = Get(t, di, &p);
}
printf("三元组中第%d个元素为%d\n", di, p);
if (i){
i = Put(t, di, );
}
if (i){
i = Show(t);
} if (isAscending(t))
printf("三元组中的元素是按升序排列\n");
else
printf("三元组中的元素不是按升序排列\n"); if (isDescending(t))
printf("三元组中的元素是按降序排列\n");
else
printf("三元组中的元素不是按降序排列\n"); if (i){
i = Max(t, &max);
}
printf("三元组中元素最大的元素为%d\n", max); if (i){
DestroyTriplet(&t);
} if (i){
i = Min(t, &min);
} printf("三元组中元素最小的元素为%d\n", min);//t所指向的内存空间已被释放,min中存放着未初始化的垃圾数字
}
抽象数据类型Triplet的C语言实现的更多相关文章
- C语言泛型编程--抽象数据类型
一.数据类型: 在任何编程语言中,数据类型作为一个整体,ANSI-C包含的类型为:int.double.char……,程序员很少满意语言本身提供的数据类型,一个简单的办法就是构造类似:array.st ...
- 采用C/C++语言如何实现复数抽象数据类型Complex
记录一下! 采用C/C++语言如何实现复数抽象数据类型Complex #include <stdio.h> typedef struct Complex { double e1; // 实 ...
- C语言抽象数据类型ADT
根据编程的问题匹配合适的数据类型.数据项连接构成了链表,定义了一个结构代表单独的项.设计了一些方法把一系列结构构成一个链表.本质上,我们使用C语言的功能设计了一种符合程序要求的新的数据类型.但是上述的 ...
- 数据结构 集合_集合(数学)抽象数据类型的C语言实现
链表是实现集合的一种理想的方式.将List以typedef的方式重命名为Set.这样做能保留链表简洁的特性,还能使集合具有了一些多态的特性. 使用这种方法的最大好处就是可以使用list_next来遍历 ...
- 集合抽象数据类型的C语言实现
链表是实现集合的一种理想的方式.将List以typedef的方式重命名为Set.这样做能保留链表简洁的特性,还能使集合具有了一些多态的特性. 使用这种方法的最大好处就是可以使用list_next来遍历 ...
- ORACLE抽象数据类型
ORACLE抽象数据类型 *抽象数据类型*/1,抽象数据类型 概念包含一个或多个子类型的数据类型不局限于ORACLE的标准数据类型可以用于其他数据类型中 2,创建抽象数据类型 的语法(必须用NOT F ...
- 【Python&数据结构】 抽象数据类型 Python类机制和异常
这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...
- DS博客作业01--日期抽象数据类型设计与实现
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...
- 抽象数据类型(ADT)
抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在这个模型上的一组操作.抽象数据类型的定义仅仅取决于它的一组逻辑特性,而与它在计算机中的表示和实现无关. 例如,in ...
随机推荐
- Calendar - SGU 115(日期判断)
这年的开始的第一天是星期 1 代码如下: =============================================================================== ...
- hdoj 2473 Junk-Mail Filter【并查集节点的删除】
Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- java如何遍历hashMap
通过Map的entrySet方法.将返回一个set集合.然后遍历这个set集合: package com.howlaa.day04; import java.util.HashMap; import ...
- ELK初学搭建(kibana)
ELK初学搭建(kibana) elasticsearch logstash kibana ELK初学搭建 kibana 1.环境准备 centos6.8_64 mini IP:192.168.10. ...
- 【设计模式 - 15】之解释器模式(Interpreter)
1 模式简介 解释器模式允许我们自定义一种语言,并定义一个这种语言的解释器,这个解释器用来解释语言中的句子.由于这种模式主要用于编译器的编写,因此在日常应用中不是很常用. 如果一种特定类型的 ...
- .net web 开发平台- 表单设计器 一(web版)
如今为了适应需求的不断变化,动态表单设计器应运而生.它主要是为了满足界面的不断变化和提高开发速度.比如:一些页面客户可能也无法确定页面的终于布局,控件的位置,在哪种情况下显示或不显示等可能须要随时改动 ...
- CSS——(1)基础
CSS(Cascading Style Sheets)层叠样式表 含义 一种计算机语言: 能够实现网页与内容分离: 用来表现文件样式,如HTML或XML: 比較 div与css 假设说div是容器的话 ...
- wikioi 2573 大顶堆与小顶堆并用
题目描写叙述 Description 我们使用黑匣子的一个简单模型.它能存放一个整数序列和一个特别的变量i.在初始时刻.黑匣子为空且i等于0. 这个黑匣子能运行一系列的命令.有两类命令: ADD(x) ...
- Innodb_buffer_pool_pages_dirty [一个故事@MySQL DBA]MYSQL
http://www.orczhou.com/index.php/2010/12/more-about-mysql-innodb-shutdown/http://www.orczhou.com/ind ...
- Java语言基础(三)
Java语言基础(三) 一. 补码 (1).之所以有补码是因为要考虑成本 就是造计算机的成本 (2).下面让我们分析一下补码 以四位补码为例 <1> 高位是符号位,它决定其是正数还是 ...