这一系列的文章是我在 看严蔚敏的《数据结构. 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;
}
结果: