看数据结构写代码(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
- 看数据结构写代码(1) 三元组
- 看数据结构写代码(4)单链表
- 看数据结构写代码(43) 关节点
- 看数据结构写代码(55) 二叉排序树
- 看数据结构写代码(61) 哈希表
- 看数据结构写代码(65) 基数排序
- 看数据结构写代码(3)顺序表的 实现
- 看数据结构写代码(5)静态链表
- 看数据结构写代码(8)顺序栈的实现
- 看数据结构写代码(9)链栈的实现
- 看数据结构写代码(18) KMP算法
- 看数据结构写代码(19) 数组的实现
- 看数据结构写代码(41) 强连通分量
- 看数据结构写代码(42)最小生成树
- 看数据结构写代码(45) 拓扑排序
- 看数据结构写代码(46) 关键路径
- 看数据结构写代码(47)迪杰斯特拉最短路径算法
- 看数据结构写代码(48) 弗洛伊德最短路径
- iOS 图片显示原理
- 剖析 Linux hypervisor
- Codeforces 500C New Year Book Reading
- C和C++混合编程(error C2059: syntax error : 'string')
- sqlite3导入数据
- 看数据结构写代码(1) 三元组
- Android FrameWork——Touch事件派发过程详解
- [Lua]Lua IO库整理
- Cocos3.4 横版游戏制作-《KillBear》-攻击判定+伤害飘血
- 转:Maven常用命令
- spring和quartz整合实现定时任务(配置文件配置方式
- js之回到顶部
- Android FrameWork——Binder机制详解(2)
- leetcode:Divide Two Integers