zoukankan      html  css  js  c++  java
  • 队列堆栈和数组-三角矩阵

    #include<iostream>
    #include <iomanip>
    using namespace std;
    enum TriangleTye{leftBottom,leftUp,rightBottom,rightUp};
    struct TriangleMatrix
    {
        int* nums;
        int scale;
        TriangleTye triangleTye;
        int size;
    };
    
    TriangleMatrix* createTriangleMatrix(int scale,TriangleTye triangleTye)
    {
        int size = scale*(scale+1)/2;
        TriangleMatrix* p = (TriangleMatrix*)malloc(sizeof(TriangleMatrix));
        p->nums = new int[size+1];
        p->scale=scale;
        p->triangleTye=triangleTye;
        p->size=size;
        return p;
    }
    
    int getElement(TriangleMatrix* matrix,int i,int j)
    {
        switch ((matrix->triangleTye))
        {
        case leftBottom:
            if(i<j)
                return 0;
            else return matrix->nums[i*(i-1)/2+j-1];
            break;
    
        case leftUp:
            if(matrix->scale-i+1<j)
                return 0;
            else return matrix->nums[matrix->size - ((matrix->scale-i)*(matrix->scale-i+1)/2+(matrix->scale-i+1-j))-1];
            break;
    
        case rightBottom:
            if(matrix->scale-i+1>j)
                return 0;
            else return matrix->nums[i*(i-1)/2+j-(matrix->scale-i)-1];
            break;
    
        case rightUp:
            if(i>j)
                return 0;
            else  return matrix->nums[matrix->size - (matrix->scale-i+1)*(matrix->scale-i+2)/2+j-i];
            break;
    
        default:
            return -1;
            break;
        }
    }
    
    void OuptPut(TriangleMatrix* p)
    {
        
        for(int i=1;i<=p->scale;i++)
        {
            for(int j=1;j<=p->scale;j++)
            {
                printf("%d ",getElement(p,i,j)); 
            }
            printf("
    "); 
        }
    }
    
    void main()
    {
        printf("
    "); 
        printf("%s","four kinds of triangle matrix, and the elements is:"); 
        printf("
    "); 
        int x=9;
        TriangleMatrix* p= createTriangleMatrix(x,leftBottom);
        for(int i=0;i<x*(x+1)/2;i++)
        {
            p->nums[i]=rand()%10;
            printf("%d ",p->nums[i]); 
        }
         printf("
    "); 
         printf("vertical corner at leftBottom:
    "); 
         OuptPut(p);
    
         printf("vertical corner at rightBottom:
    "); 
         p->triangleTye = rightBottom;
         OuptPut(p);
    
         printf("vertical corner at leftUp:
    "); 
         p->triangleTye = leftUp;
         OuptPut(p);
    
        printf("vertical corner at rightUp:
    "); 
         p->triangleTye = rightUp;
         OuptPut(p);
    
        printf("Done
    "); 
        scanf("%d",&x);
    }
  • 相关阅读:
    Django forms 主要的标签介绍
    DjangoForm 提交验证
    js 实现JSONP
    mssql sqlserver 批量删除所有存储过程的方法分享
    mssql sqlserver 规范使用方法分享
    MSSQL Sql加密函数 hashbytes 用法简介
    mssql sqlserver 获取指定日期为本月第几个工作日
    存储过程和函数之间有几个区别
    mssql sqlserver 视图如何加密,让第三方用户查看不到其中的SQL语句
    mssql sql语句过滤百分号的方法分享
  • 原文地址:https://www.cnblogs.com/kbyd/p/3995500.html
Copyright © 2011-2022 走看看