设为首页 加入收藏

TOP

C语言编程构造拉丁方阵和正交拉丁方阵组(二)
2018-03-02 06:57:27 】 浏览:1420
Tags:语言编程 构造 拉丁 方阵 正交
填充第一个数
        {
            if (fill(Lad, position, hold, i, TF)==0)
            {
                break;  //第一个数填充失败,所有依次填1,2,--n的拉丁方阵均已找到,循环结束
            }
            i++;  //自增1,准备填充第二个数
            TF=true;  //准备填充第二个数
            continue;  //开始新一轮循环
        }
        else
        {
            if (fill(Lad, position, hold, i, TF)==0)  //第i个数填充失败
            {
                i--;
                TF=false;  //回溯至上一个数
                continue;
            }
            else
            {
                if (i!=N)    //第i个数填充成功,但所有数没有填完
                {
                  i++;
                  TF=true;    //准备填充下一个数
                  continue;
                }
                else    //所有数填充成功,找到一个拉丁方阵
                {
                    psnew=(B1 *) malloc(sizeof(B1));
                    psnew->next=NULL;
                    psnew->Pa=(int **) malloc(N*sizeof(int *));  //建立B1类型节点,令节点的Pa,Pb指向该拉丁方阵和对应的占位矩阵
                    psnew->Pb=(int **) malloc(N*sizeof(int *));


                    for (j=0; j<N; j++)
                    {
                        psnew->Pa[j]=(int *) malloc(N*sizeof(int));
                        psnew->Pb[j]=(int *) malloc(N*sizeof(int));


                        for (k=0; k<N; k++)
                        {
                            *(psnew->Pa[j]+k)=Lad[j][k];              //用找到的拉丁方阵和占位矩阵填充Pa,Pb指向的拉丁方阵和占位矩阵
                            *(psnew->Pb[j]+k)=position[j][k];
                        }
                    }


                    tail->next=psnew;
                &nb

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言求解线性方程组 下一篇C语言重解经典回溯算法案例-迷宫..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目