2.2三元组

原创 2018年04月16日 10:29:17

1、首先截图说明文件布局


2、使用me.h对三元组的函数进行声明。

#ifndef _YE_LE_LE_
#define _YE_LE_LE_


typedef int *Triplet;
typedef int Status;
typedef int ElemType;


Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3);//初始化三元组,返回初始化状态,成功为1,失败为0 

Status DestoryTriplet(Triplet &T);//销毁三元组 ,返回成功的状态

Status Get(Triplet T, int i, ElemType &e); //得到其中的一个元素的值 

Status Put(Triplet &T, int i, ElemType e);//修改其中一个元素的值 

Status IsAsceding(Triplet T);//判断三元组是否为升序排列

Status IsDesceding(Triplet T); //判断三元组是否为降序排列

Status Max(Triplet T, ElemType &e);//返回三元组的最大值

Status Min(Triplet T, ElemType &e);//返回三元组的最小值

#endif

3、编写三元组的函数实现。

#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR -1
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0
//定义指向三元组首地址的指针
typedef int *Triplet;
//返回值类型
typedef int Status;
//参数类型
typedef int ElemType;
//初始化三元组的实现 
Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3) {
	T = (ElemType *)malloc(sizeof(ElemType) * 3);
	if (!T)
	{
		exit(OVERFLOW);
	}

	T[0] = v1;
	T[1] = v2;
	T[2] = v3;
	return OK;
}

//销毁三元组
Status DestoryTriplet(Triplet &T)
{
	free(T);
	T = NULL;
	return OK;
}

//&e传递的是对实参的引用(别名)
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 IsAsceding(Triplet T)//因为在这里判断是否为升序,对T的内容没有影响,在形参中没有用引用
{
	/*if (T[0]<=T[1]&&T[1]<=T[2])
	{
		return TRUE;
	}
	return FALSE;*/
	return (T[0] <= T[1] && T[1] <= T[2]);
}

//判断三元组是否为降序排列
Status IsDesceding(Triplet T)
{
	/*if (T[0] >= T[1] && T[1] >= T[2])
	{
		return TRUE;
	}
	return FALSE;*/
	return (T[0] >= T[1] && T[1] >= T[2]);
}

//返回三元组的最大值
Status Max(Triplet T, ElemType &e)
{
	int max = T[0]>T[1]?T[0]:T[1];
	e = max > T[2] ? max : T[2];
	return e;
}

//返回三元组的最小值
Status Min(Triplet T, ElemType &e)
{
	int min = T[0]<T[1] ? T[0] : T[1];
	e = min < T[2] ? min : T[2];
	return e;
}

4、写出主函数对三元组实现进行测试。

#include<stdio.h>
#include<stdlib.h>
#include"me.h"
typedef int *Triplet;
typedef int Status;
typedef int ElemType;

int main()
{
	Triplet T=NULL;
	ElemType v1 = 4, v2 = 2, v3 = 3;
	int i,e;
	i = InitTriplet(T, v1, v2, v3);//初始化三元组,T是一个整形的地址
	//输出三元组的初始化结果
	printf("初始化完成的内容:\n");
	for (i = 0; i<3; i++)
	{
		printf("%d\n", T[i]);
	}
	//销毁三元组
	//i = DestoryTriplet(T);
	//printf("%d\n",i);

	//Get(T, 1, e);
	//printf("%d\n",e);
	printf("修改之后的内容:\n");
	Put(T, 2, 10);
	for (i = 0; i<3; i++)
	{
		printf("%d\n", T[i]);
	}
	//判断是否为升序排序,是返回1,否返回0
	printf("判断是否为升序排序\n");
	i=IsAsceding(T);
	if (i==1)
	{
		printf("true\n");
	}
	else
	{
		printf("false\n");
	}
	printf("三元组中的最大值:\n");
	i=Max(T, e);
	printf("%d\n",i);
	printf("三元组中的最小值:\n");
	i = Min(T, e);
	printf("%d\n", i);
	return 0;
}


CGI安全漏洞资料速查

    ############################################################################# 本文取自一位朋友.这本来不算是什么珍...
  • eternalee
  • eternalee
  • 2001-10-08 20:46:00
  • 1306

三元组矩阵的乘法

三元组矩阵的乘法,针对稀疏矩阵: 源代码如下: #include #include #define MAXSIZE 100 //非零元的最大个数 #define MAX_ROW_NUM 2...
  • jimo_lonely
  • jimo_lonely
  • 2015-11-11 18:17:10
  • 2339

《数据结构》---三元组的实现

在此给出三元组的C语言实现方法,.h文件与.c文件没有分开,写在了一个文件中,可以粘贴放在clockblocks中运行,或者Liunx平台。#include #include #define OK...
  • u013383042
  • u013383042
  • 2016-09-06 20:32:08
  • 995

EOJ1810 稀疏矩阵三元组转化

稀疏矩阵定义: 稀疏矩阵的原理是将矩阵中的非零元素用一个三元组来表示,然后保存在数组中,而那些零元素就不保存,从而达到压缩的目的。三元组(i, j, k)表示第i行第j列的值是k。所以一个矩阵就可以用...
  • ECNU_LZJ
  • ECNU_LZJ
  • 2016-10-23 15:34:02
  • 807

java三元组

  • 2008年04月15日 22:04
  • 18KB
  • 下载

知识图谱三元组抽取

http://blog.csdn.net/u013412066/article/details/68065518
  • baidu_15113429
  • baidu_15113429
  • 2017-11-03 17:54:06
  • 1525

对RDF文件当中三元组的理解

本文详细解释了RDF文件当中三元组和图的关系,还利用sparql对RDF文件中三元组的subject 、predicate、object进行了查询,从而加深了对三元组的理解,特别适合初学者去看。 ...
  • xuzhiming302
  • xuzhiming302
  • 2017-11-30 21:23:11
  • 482

稀疏矩阵 三元组顺序表(顺序解构)

稀疏矩阵      稀疏概念:当矩阵中只有很少的非零元素时,并且分布也不规律,非零元素只占20%~30%甚至更少,此矩阵称为稀疏矩阵       如果按照传统的存储方式例如数组存储...
  • KreamFan
  • KreamFan
  • 2016-12-04 20:41:42
  • 961

稀疏矩阵基于“三元组”的转置算法实现

稀疏矩阵基于“三元组”的转置算法实现
  • wangchuanqi1234
  • wangchuanqi1234
  • 2016-04-11 17:45:15
  • 1362

三元组存储会取代关系型数据库吗?

三元组存储会取代关系型数据库吗? Dr. Jans Aasman, CEO of Franz Inc., the leading supplier of Graph Database tec...
  • jazywoo123
  • jazywoo123
  • 2013-12-22 12:27:07
  • 1279
收藏助手
不良信息举报
您举报文章:2.2三元组
举报原因:
原因补充:

(最多只允许输入30个字)