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

实验内容

基本要求:
设计实现抽象数据类型“三元组”,要求动态分配内存。每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组等。

/* Auther: XDate:2020/2/15Description:  数据结构与算法*实验一*抽象数据结构 */
#include<stdio.h>
#define OK 1
#define ERROR 0
typedef int status;typedef float Elemtype;
typedef int Status;typedef struct
{Elemtype e[3];}Triplet;//初始化三元组;
Status InitTriplet(Triplet &T,Elemtype v0,Elemtype v1,Elemtype v2)
{T.e[0]=v0;T.e[1]=v1;T.e[2]=v2;return OK;
}// 取三元组中第i个值赋值给e
Status Put(Triplet T,Status i,Elemtype &e)
{if(i<1||i>3)return ERROR;elsee=T.e[i-1];return OK;}//取三元组中最大值赋值给e
Status Getmax(Triplet &T,Status i,Elemtype &e)
{e=T.e[0];for(i=0;i<3;i++)if(T.e[i]>e)e=T.e[i];return OK;
}//取三元组中最小值赋值给e
Status Getmin(Triplet &T,Status i,Elemtype &e)
{e=T.e[0];for(i=0;i<3;i++)if(T.e[i]<e)e=T.e[i];return OK;
}//输出三元组的三个值;
Status ShowTriplet(Triplet &T,Status i)
{if(i<1||i>3)return ERROR;elseprintf("三元组的3个值为:");for(i=0;i<3;i++)printf("%2f",T.e[i]);return OK; } //判断三元组中的值是否为升序;
Status IsAscending(Triplet &T)
{return((T.e[0]<T.e[1])&&(T.e[1]<T.e[2]));//升序则返回1,否则返回0;
}//判断三元组中的值是否为降序;;
Status IsDescending(Triplet &T)
{return((T.e[0]>T.e[1])&&(T.e[1]>T.e[2]));//降序则返回1,否则返回0; } //输出三元组中数值的乘积;
Status GetProduct(Triplet &T,Status i,Elemtype &e)
{e=T.e[0]*T.e[1]*T.e[2];return OK;} //销毁三元组;
Status Destory(Triplet &T)
{return OK;} int main()
{Triplet T;Status i,flag;Elemtype v0,v1,v2,e;printf("输入三元组的值:\n");scanf("%f %f %f",&v0,&v1,&v2);flag=InitTriplet(T,v0,v1,v2);printf("初始化函数后,flag=%d\n,",flag);printf("三元组中三个值分别为:%4.2f,%4.2f,%4.2f\n",T.e[0],T.e[1],T.e[2]);Put(T,i,e);printf("取三元组中第i个值赋值给e:%d\n ",e);Getmax(T,i,e);printf("输出三元组中的最大值:%f\n",e);Getmin(T,i,e);printf("输出三元组中的最小值:%f\n",e);if (IsAscending(T))printf("三元组是升序") ;if(IsDescending(T)) printf("三元组是降序");GetProduct(T,i,e);printf("输出三元组三个元素值的成绩:%f%f%f\n",T.e[0],T.e[1],T.e[2]);flag=Destory(T);printf("销毁三元组T成功:flag=%d\n",flag);return OK;}

三元组相比上学期的指针在功能上更加丰富,且更易理解。
同时更加从系统角度出发,例如typedef int Status;可以是系统更容易修改数值的数据类型

实验报告:抽象数据类型的表现和实现相关推荐

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

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

  2. c语言写报告抽象数据类型,C语言抽象数据类型ADT

    根据编程的问题匹配合适的数据类型.数据项连接构成了链表,定义了一个结构代表单独的项.设计了一些方法把一系列结构构成一个链表.本质上,我们使用C语言的功能设计了一种符合程序要求的新的数据类型.但是上述的 ...

  3. c语言写报告抽象数据类型,数据结构(C语言版)第一章 抽象数据类型的表示与实现...

    //文件名:Triplet.c //因为C语言没有引用,所以用指针代替引用 //函数的头文件 #include #include //函数结果状态码 #define TRUE 1 #define FA ...

  4. 软件构造lab2 - 实验报告

    软件构造lab2 - 实验报告 1.实验目标概述 2.环境配置 3.实验过程 3.1Poetic Walks 3.1.1Get the code and prepare Git repository ...

  5. 哈工大2020软件构造Lab2实验报告

    本项目于3.17日实验课验收,请放心参考 参考时文中有给出一些建议,请查看 基本更新完成 2020春计算机学院<软件构造>课程Lab2实验报告 Software Construction ...

  6. 哈工大2020春软件构造实验二实验报告

    2020年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 姓名 赵俊 学号 1180300508 班号 1836101 电子邮件 手机号码 目录 1 实验目标概述 1 2 实验环 ...

  7. HIT 软件构造 lab2实验报告

    2020年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 学号 1180300223 班号 1803002 目录 1 实验目标概述 1 2 实验环境配置 1 3 实验过程 1 3 ...

  8. 软件构造 Lab2 实验报告

    2021年春季学期 计算学部<软件构造>课程 Lab 2实验报告 姓名 王雨宁 学号 1190201118 班号 1903006 电子邮件 1756840811@qq.com 手机号码 1 ...

  9. c语言抽象数据类型复数,抽象数据类型复数的实现..doc

    抽象数据类型复数的实现. 石家庄经济学院 实 验 报 告 学 院: 信息工程学院 专 业: 计算机 信息工程学院计算机实验中心制 <数据结构>实验报告姓名张文楚学号409109070515 ...

最新文章

  1. 如何判断是否丢掉用户请求(转载)
  2. Learning C# by Developing Games with Unity 5.x(2nd) 学习
  3. 笔记-高项案例题-2016年上-整体管理+风险管理
  4. 【原创翻译】The Free Lunch Is Over
  5. 信奥中的数学:信息论基础
  6. 最全的BAT Google等团队技术博客集合
  7. 新来的运维这样用HDFS,CIO都懵了···
  8. C#面试题 之 判断质数
  9. 小学生计算机德育渗透总结,小学信息技术教学德育渗透的研究
  10. 大家有用 hackerrank 刷过题吗,这家公司出了一个题来让大家测测自己有多牛
  11. 芒果文件服务器,芒果云服务器
  12. 企业全面运营管理沙盘模拟心得_大庆职业学院举办创业技能大赛企业经营管理沙盘模拟赛...
  13. linux查看具体进程占用的网络流量
  14. mysql grep 提取错误日志_通过grep 获取MySQL错误日志信息的方法
  15. @RequiredArgsConstructor(onConstructor = @__(@Autowired)) Intellij IDEA如何去掉@Autowired 注入警告的方法
  16. unity Console窗口的输出
  17. python做软件二次开发好吗_利用Python二次开发Creo
  18. 拼多多店铺数据分析有什么作用?哪些数据是有用的?
  19. 【题解】昂贵的聘礼 POJ - 1062 (最短路 经典)⭐⭐⭐⭐
  20. 数据结构和算法 | 第一部分第二课:小鸭子们去旅行

热门文章

  1. Redis数据类型--列表类型
  2. Java 128陷阱+自动装箱拆箱
  3. 3. 什么是icmp?icmp与ip的关系_月入3万的大龄剩女相亲被拒:如果余生是你,晚一点有什么关系...
  4. C语言 Hello World - C语言零基础入门教程
  5. BugkuCTF-MISC题蜜雪冰城~
  6. 学计算机高中选那三科,女生高中选哪三科最吃香
  7. vim复制、删除和粘贴一行
  8. mybatis获取表名_mybatis plus 的动态表名的配置详解
  9. 智能云媒体服务器,智慧广电媒体解决方案
  10. android长按home键关闭程序,应用程序退出后Dialog弹出