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

来源:互联网 发布:网络渗透技术教程视频 编辑:程序博客网 时间:2024/05/23 00:01

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

欢迎指出代码不足。

#include "stdafx.h"#include <stdlib.h>using namespace std;#define ERROR_NOMEM -1#define YUANZU_SIZE  3typedef 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;}
结果:



0 0
原创粉丝点击