拉丁方阵问题。(动态申请内存)

本文探讨了在遇到数组限制时,如何利用calloc动态申请内存来处理拉丁方阵问题。通过动态内存分配,可以灵活地应对内存限制,确保算法的正常运行。
摘要由CSDN通过智能技术生成

由于用数组有限制,所以用calloc来动态申请内存。

 

#if 0
	拉丁方阵
	需要的函数:
	1.链表的生成以及初始化;
	2.动态申请方阵数组函数
	3.拉丁化赋值;
	4.方阵式输出;

	思路:建立一个2维数组。通过用户设定的长度来生成循环链表
	通过链表,赋值到2维数组。
	每次链表节点位置向后移一位。循环赋值到每一维数组。
	例如:
	3*3的拉丁方阵。链表中存有1,2,3.
	那么LatinArray[0][] = 1,2,3
	链表头结点后移一位,即2,3,1
	那么LatinArray[1][] = 2,3,1
	其他同理;
#endif

#include <stdio.h>
#include <stdlib.h>

#define OK 'y'

typedef struct latin
{
	int data;
	struct latin *next;
}Latin, *Latins;


#if 0
	名称:CreateList[初始化链表]
	调用:CreateList(Latins head, int num)
	作用:生成并初始化设定长度的链表;
	参数:head,头结点。num,需要设定方阵的大小
	返回值:OK 表示调用成功
#endif
Latins CreateList(Latins head, int num)
{
	Latins p, r;
	p = head;
	
	p->data = num;
	num--;

	while(num != 0)
	{
		r = (Latins)malloc(sizeof(Latin));
		if(!r)
		{
			printf("申请内存出错!");
			exit(1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值