Triplet.h
#ifndef _TRIPLET_H_
#define _TRIPLET_H_
#include<string.h>
#include<ctype.h>
#include<malloc.h> /* malloc()等 */
#include<limits.h> /* INT_MAX等 */
#include<stdio.h> /* EOF(=^Z或F6),NULL */
#include<stdlib.h> /* atoi() */
#include<math.h> /* floor(),ceil(),abs() */
typedef int Status;
typedef int Boolean;
typedef int ElemType;
typedef ElemType* Triplet;
/* 初始化 */
int InitTriplet(Triplet *T,ElemType e1,ElemType e2,ElemType e3);
/* 获取指定位置元素 */
int GetElem(Triplet T,int index,ElemType *e);
/* 插入元素 */
int InsertElem(Triplet T,int index,ElemType e);
/* 修改 */
int ModifieElem(Triplet T,int index,ElemType e);
/* 输出 */
int PrintElem(Triplet T);
/* 销毁 */
int Destroy(Triplet *T);
#endif
Triplet.c
#include"Triplet.h"
/* 初始化 */
int InitTriplet(Triplet *T,ElemType e1,ElemType e2,ElemType e3)
{
*T = (ElemType *)malloc(3 * sizeof(ElemType));
if(*T == NULL)
{
return -1;
}else{
(*T)[0] = e1;
(*T)[1] = e2;
(*T)[2] = e3;
}
return 1;
}
/* 获取指定位置元素 */
int GetElem(Triplet T,int index,ElemType *e)
{
if((index < 0 || index > 3)||(T == NULL))
{
return -1;
}else{
*e=T[index];
}
return 1;
}
/* 插入元素 */
int InsertElem(Triplet T,int index,ElemType e)
{
if((index < 0 || index > 3)||(T == NULL))
{
return -1;
}else{
T[index]=e;
}
return 1;
}
/* 修改 */
int ModifieElem(Triplet T,int index,ElemType e)
{
if((index < 0 || index > 3)||(T == NULL))
{
return -1;
}else{
T[index]=e;
}
return 1;
}
/* 输出 */
int PrintElem(Triplet T)
{
int i=0;
if(T == NULL)
{
return -1;
}else{
for(i = 0;i < 3;i++)
{
printf("T[%d] = %d\n",i,T[i]);
}
}
return 1;
}
/* 销毁 */
int Destroy(Triplet *T)
{
free(*T);
*T=NULL;
return 1;
}
main.c
#include "Triplet.h"
int main()
{
Triplet T = NULL;
ElemType m = -1;
/* 初始化 */
InitTriplet(&T,1,2,3);
/* 输出 */
PrintElem(T);
/* 获取指定位置元素 */
GetElem(T,2,&m);
printf("取出元素为:%d\n",m);
/* 插入元素 */
InsertElem(T,2,222);
/* 输出 */
PrintElem(T);
/* 修改 */
ModifieElem(T,3,333);
/* 输出 */
PrintElem(T);
/* 销毁 */
Destroy(&T);
return 0;
}
程序输出:
T[0] = 1
T[1] = 2
T[2] = 3
取出元素为:3
T[0] = 1
T[1] = 2
T[2] = 222
T[0] = 1
T[1] = 2
T[2] = 222