看数据结构写代码(1) 三元组

这一系列的文章是我在 看严蔚敏的《数据结构. C语言版》时,写下的 读书代码。一做笔记,二做勉励。

欢迎指出代码不足。

#include "stdafx.h"
#include <stdlib.h>
using namespace std;

#define ERROR_NOMEM -1
#define YUANZU_SIZE  3
typedef int ElementType;//基本类型
typedef ElementType * YuanZu;//元组类型

enum Enum_State
{
	E_State_Error = 0,
	E_State_Ok = 1,
};

Enum_State initYz(YuanZu & yz,ElementType a,ElementType b,ElementType c){
	yz = (YuanZu)malloc(YUANZU_SIZE * sizeof(ElementType));
	if (yz == NULL)
	{
		exit(ERROR_NOMEM);
	}
	yz[0] = a;
	yz[1] = b;
	yz[2] = c; 
	return E_State_Ok;
}

Enum_State destoryYz(YuanZu & yz){
	free(yz);
	yz = NULL;
	return E_State_Ok;
}

Enum_State getElement(YuanZu yz,int index,ElementType & e){
	if (index < 1 || index > 3)
	{
		return E_State_Error;
	}
	e = yz[index-1];
	return E_State_Ok;
}

Enum_State setElement(YuanZu & yz,int index,ElementType e){
	if (index < 1 || index > 3)
	{
		return E_State_Error;
	}
	yz[index -1] = e;
	return E_State_Ok;
}

int isDes(YuanZu yz){
	if (yz[0] > yz[1] && yz[1] > yz[2])
	{
		return 1;
	}
	return 0;
}

ElementType maxElement(YuanZu yz){
	return yz[0] > yz[1] ? \
		yz[0] > yz[2] ? yz[0] : yz[2]\
		:yz[1] > yz[2] ? yz[1] : yz[2];
		
}

void printYz(YuanZu yz){
	for (int i = 0; i < YUANZU_SIZE; i++)
	{
		printf("%d\t",yz[i]);
	}
	printf("\n");
}



int _tmain(int argc, _TCHAR* argv[])
{
	YuanZu a;
	initYz(a,10,20,30);
	printYz(a);
	ElementType e;
	setElement(a,3,5);
	printYz(a);
	getElement(a,3,e);
	printf("e == %d\n",e);
	ElementType max = maxElement(a);
	printf("max == %d\n",max);
	destoryYz(a);
	return 0;
}

结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值