这个博客基本操作大部分来自教材《数据结构C语言版》严蔚敏版,实现了书中的大部分功能,并且用了三个文件。

一个是主函数,一个是功能模块,一个是头文件定义,用VC6.0++完成


//头文件声明
#ifndef _FUNC_H
#define _FUNC_H
#define OK 1
#define ERROR 0
#define OVERFLOW -2typedef int Status;
typedef float ElemType;
typedef ElemType *Triplet;     extern Status InitTriplet (Triplet &t,ElemType v1,ElemType v2,ElemType v3);
extern Status DestroyTriplet (Triplet t);
extern Status get(Triplet t,int i,ElemType &e);
extern Status put(Triplet &t,int i,ElemType e);
extern Status Max(Triplet t,ElemType &e);
extern Status Min(Triplet t,ElemType &e);
extern Status IsAscend(Triplet t);
extern Status IsDescend(Triplet t);
extern Status Average(Triplet t,ElemType &e);
int system(const char *string);
#endif
//功能模块
#include <stdio.h>
#include <stdlib.h>
#include "head.h"
//初始化
Status InitTriplet (Triplet &t,ElemType v1,ElemType v2,ElemType v3)
{t=(ElemType *)malloc(3*sizeof(ElemType));   if(!t) return OVERFLOW;t[0]=v1;t[1]=v2;t[2]=v3;return OK;
}
//销毁
Status DestroyTriplet (Triplet t)
{free(t); t=NULL;return OK;
}
//返回第i个值
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 IsAscend(Triplet t)
{return (t[0]<t[1])&&(t[1]<t[2]);
}//判断降序
Status IsDescend(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 Average(Triplet t,ElemType &e)
{e=(t[0]+t[1]+t[2])/3;return OK;
}
//主函数
#include <stdio.h>
#include <stdlib.h>
#include "head.h"
void main()
{Triplet  p;ElemType e,v1,v2,v3;int i;char select;printf("输入三个数,建立一个三元组\n");scanf("%d%d%d",&v1,&v2,&v3);                    if (InitTriplet(p,v1,v2,v3)==OVERFLOW) printf("分配失败,退出程序!");else do {printf("\n");printf("1:取三元组第i个元素\n");printf("2:判断三元组元素是否递增\n");printf("3:求最大值\n");printf("4:置换第i个元素\n");printf("5:判断三元组元素是否递减\n");printf("6:求最小值\n");printf("7:求三元组平均值\n");printf("0:结束!\n");printf("请输入选择!\n");getchar();scanf("%c",&select);switch (select) {case '1':                            //getprintf("\ni=");scanf("%d",&i);                if (get(p,i,e)==ERROR)  printf("i值不合法\n");else  printf("第%d个元素的值为:%d\n",i,e);      break;  case '2':             //IsAscendprintf("3个元素分别为:%d,%d,%d\n",p[0],p[1],p[2]);printf("\n");if (IsAscend(p)==1) printf("三元组递增有序\n");else printf("三元组非递增有序\n");           break;  case '3':             //Maxprintf("3个元素分别为:%d,%d,%d\n",p[0],p[1],p[2]);Max(p,e);                         printf("最大值是:%d\n",e);       break;case '4':   //put printf("\n");printf("3个元素分别为:%d,%d,%d\n",p[0],p[1],p[2]);printf("请输入想置换的第i个元素");printf("\ni=");scanf("%d",&i);           printf("\nx=");scanf("%d",&e);        if (put(p,i,e)==ERROR) printf("i值不合法\n");else printf("置换第%d个元素后的3个元素分别为:%d,%d,%d\n",i,p[0],p[1],p[2]);break;case '5':              //IsDescendprintf("\n");printf("3个元素分别为:%d,%d,%d\n",p[0],p[1],p[2])if (IsDescend(p)==1) printf("三元组递减有序\n");else printf("三元组非递减有序\n");    break;case '6':       printf("\n");printf("3个元素分别为:%d,%d,%d\n",p[0],p[1],p[2]);Min(p,e);printf("最小值是:%f\n",e);        break;case'7':printf("\n");printf("3个元素分别为:%d,%d,%d\n",p[0],p[1],p[2]);Average(p,e);printf("平均值是:%.2f\n",e);   break;case'0':printf("操作结束!"); break;default: printf("输入选择出错!\n");}// end of switch}while(select!='0'); //end of whileDestroyTriplet(p);
}// end of main

三个文件放在一起放在一个工程中才能运行

抽象数据类型三元组Triplet基本操作与实现 严蔚敏版相关推荐

  1. 数据结构--抽象数据类型三元组Triplet的表示和实现

    抽象数据类型三元组Triplet的表示和实现. 数据类型是一个值的集合和定义在这个值集上的一组操作的总称.按"值"的不同特性,高级程序语言中的数据类型可分为两类:一类是非结构的原子 ...

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

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

  3. 数据结构实验(严蔚敏版)----栈与队列

    数据结构(严蔚敏版)配套实验报告册--栈与队列基本操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h ...

  4. 严蔚敏版数据结构(C语言版)算法实现代码

    严蔚敏版数据结构(C语言版)算法实现代码 数据结构(C语言版)代码实现 线性表 顺序表 链表 单向链表 静态链表01 静态链表02 双向循环链表 栈与队列 栈 顺序栈 进制转换 行编辑器 未完待续.. ...

  5. 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(一)

    这里用的是严蔚敏版<数据结构 (C语言版)>和<数据结构题集>,深感自己的代码写得又渣又无力,打算把这本书好好琢磨透彻,里面的算法和模板都实现一遍,题目也都做一遍.最终能够做到 ...

  6. 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(五)——栈和队列...

    栈的顺序表实现 1 #include <iostream> 2 #include <stdlib.h> 3 #include <stdio.h> 4 #define ...

  7. 数据结构头文件《Fundamentals of Data Structures in C (2nd Edition) 》/严蔚敏版《数据结构》

    #ifndef _PUBLIC_H_ #define _PUBLIC_H_#include <malloc.h>//动态分配储存空间 #include <stdlib.h> # ...

  8. 《数据结构与算法基础 严蔚敏版》第一章 绪论

    菜鸟笔记,不定时更新... 链接:https://pan.baidu.com/s/1z-kFKiNaezO0k2BWQ8l1Hw  提取码:asdf 一.数据结构的基本概念: 1.数据.数据元素.数据 ...

  9. 有关数据结构基础知识(数据结构 严蔚敏版)

    1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科 2. 研究包括逻辑结构和存储结构 1) 逻辑结构(从具体问题抽象出来的数学模型)分为 集合结构 线性结构 树 ...

最新文章

  1. linux性能优化实战-内存性能指标
  2. samtools merge_【生信工具】Samtools 安装与使用 | “十年以后,工具难免沦为朋友”...
  3. 第十六周 个人项目开发流程
  4. POJ 2299 Ultra-QuickSort(树状数组+离散化)
  5. 2014年最新前端开发面试题
  6. Git忽略项目中的指定的文件
  7. TensorFlow书籍
  8. Win10 iot 配置防火墙限制应用部署
  9. python面向对象实验报告_20192310 实验三《Python程序设计》实验报告
  10. Zephyr下计算耗时
  11. JavaScriptjQuery.HTML5事件
  12. 苹果悬浮球_手机轻松实现多个系统!安卓手机运行苹果iOS系统?期待!
  13. 手电筒app制作实录
  14. 单片机程序配置成开漏输出_单片机I/O口推挽与开漏输出详解
  15. OCR扫描识别录入之汽车车架号(VIN码)识别查询系统
  16. 电子基础元器件——电阻器
  17. matlab连通区域统计,MATLAB bwlabel函数 统计连通区域
  18. 51nod 1548 欧姆诺姆和糖果【思维+分类讨论】
  19. MathType怎么编辑等号带点
  20. 995.K连续位的最小翻转次数(唯唯诺诺)

热门文章

  1. Vivado HLS #pragma 学习笔记(一)
  2. 关于评审--从思想到落地
  3. IntelliJ IDEA自动生成注释的author
  4. 互联网日报 | 微信公众号界面再改版;快手发布“快手联盟”;首家农商行理财子公司获批开业...
  5. 华为、小米已成老年手机市场主力—1.5万条老年手机电商数据解读
  6. RLC元件上电压,电流关系
  7. spring的task和quartz的区别
  8. LInux 下 Anaconda多环境切换
  9. 844. 走迷宫 + BFS
  10. Windows日志浅析