数据结构(C语言版)课后复习

数据结构(C语言版)课后复习,第1张

数据结构(C语言版)课后复习

三元组Triplet的基本 *** 作: 

typedef ElemType* Triplet;

Status InitTriplet(Triplet& T, ElemType v1, ElemType v2, ElemType v3)
{
	T = (ElemType*)malloc(3 * sizeof(ElemType));
	if (!T) exit(OVERFLOW);
	T[0] = v1;
	T[1] = v2;
	T[2] = v3;
	return OK;
}
Status DestroyTriplet(Triplet& T)
{
	free(T);
	T = NULL;
	return OK;
}
Status Get(Triplet T, int i, ElemType& e)
{
	if (i < 1 || i>3) return ERROR;
	else e = T[i - 1];
	return OK;
}
Status Put(Triplet& T, int i, ElemType e)
{
	if (i < 1 || i>3) return ERROR;
	else T[i - 1] = e;
	return OK;
}
Status IsAscending(Triplet T)
{
	return (T[0] <= T[1] && T[1] < T[2]);
}
Status IsDescending(Triplet T)
{
	return (T[0] > T[1] && T[1] > T[2]);
}
Status Max(Triplet T, ElemType& e)
{
	return e = (T[0] >= T[1]) ? ((T[0] >= T[2]) ? T[0] : T[2]) : ((T[1] >= T[2]) ? T[1] : T[2]);
}
Status Min(Triplet T, ElemType& e)
{
	return e = (T[0] <= T[1]) ? ((T[0] <= T[2]) ? T[0] : T[2]) : ((T[1] <= T[2]) ? T[1] : T[2]);
}

 主函数中测试基本函数:

int main()
{
	Triplet T;
	ElemType m;
	InitTriplet(T, 7, 7, 7);
	Status i;
	printf("三元组元素依次为:%d,%d,%dn",T[0], T[1], T[2]);
	int isRound = 1;
	int IsRound = 1;
	while (isRound)
	{
		int n;
		printf("请输入需要查询的数的位置:");
		scanf_s("%d", &n);
		Get(T, n, m);
		printf("查询的数:%dn",m);
		printf("继续修改请按1,退出请按0n");
		scanf_s("%d", &isRound);
	}
	while (IsRound)
	{
		int n;
		printf("请输入需要修改数的位置:");
		scanf_s("%d",&n);
		printf("请输入修改后的值:");
		scanf_s("%d",&m);
		Put(T, n, m);
		printf("修改后的三元组为%d,%d,%dn",T[0], T[1], T[2]);
		printf("继续修改请按1,退出请按0n");
		scanf_s("%d", &IsRound);
	}
	i = IsAscending(T);
	printf("三元组是否为升序的状态:%d (0为否,1为是)n", i);
	i = IsDescending(T);
	printf("三元组是否为降序的状态:%d (0为否,1为是)n", i);
	Min(T, m);
	printf("最小值为%dn",m);
	Max(T, m);
	printf("最大值为%dn",m);
	return 0;
}

运行结果:


 窗外有风景,笔下有前途,低头是题海,抬头是未来,菜鸡在努力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/3970454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存