• 僵尸传染问题demo(BFS)


    #include <stdio.h>
    #include <stdlib.h>
    #define SIZE 5
    typedef struct node{
        int x;
        int y;
        int step;
    }node;
    int map[SIZE][SIZE]={{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1}};
    node queue[30];
    int head,tail;//队列头和队列尾
    int step;
    int x[4]={-1,0,+1,0};//x坐标的变化
    int y[4]={0,+1,0,-1};//y坐标的变化
    /* 函数名:enqueue
    *  功能:入队
    *  入口参数:要入队的节点
    *  返回值:暂无
    */
    void enqueue(node E){//用tail(对尾)进行插入操作
        queue[tail++] = E;//先入队,然后tail加一
    }
    /* 函数名:dequeue
    *  功能:出队
    *  入口参数:要出队的节点
    *  返回值:出队的元素
    */
    node dequeue(){//用head(队头)进行删除操作
        return queue[head++];//先出队,然后head加一
    }
    
    int main(){
        //源点入队列
        node SourcePoint ={4,4,2};
        enqueue(SourcePoint);
        step = 0;
        int count=3;
        map[4][4] = 2;//把传染源置为2
        node CurPoint ={};//当前点
        node NewPoint ={};//新的点
        while(head<tail){
            
            CurPoint = dequeue();//当前点出队列
            for(int i=0;i<4;i++){
                NewPoint.x = CurPoint.x + x[i];
                NewPoint.y = CurPoint.y + y[i];
                NewPoint.step = CurPoint.step+1;
    
                if((NewPoint.x<SIZE&&NewPoint.y<SIZE)&&(map[NewPoint.x][NewPoint.y]==1))
                {
                    //CurPoint.x = NewPoint.x;
                    //CurPoint.y = NewPoint.y;
                    //map[CurPoint.x][CurPoint.y]=count;
        //             enqueue(CurPoint);
    
                      map[NewPoint.x][NewPoint.y] = NewPoint.step;
                      enqueue(NewPoint);
    
                }
            }
        }
        for(int i=0;i<SIZE;i++){
            for(int j=0;j<SIZE;j++)
            {
                printf("%d ",map[i][j]);
            }
            printf("
    ");
        }
     //     { printf("%d",map[i]);
        //printf("
    ");}
        system("pause");
    }
    大多数想法要么平庸,要么更糟糕,这很大程度上因为绝妙的想法难得一见,而且他们还要在我们身边这个充斥了各种恶俗的所谓常识的环境中孕育生长。
  • 相关阅读:
    openwrt 相关文章
    负载均衡相关文章
    Today's Progress
    Rodrigues formula is beautiful, but uneven to sine and cosine. (zz Berkeley's Page)
    Camera Calibration in detail
    Fundamental Matrix in Epipolar
    Camera Calibration's fx and fy do Cares in SLAM
    FilterEngine::apply
    FilterEngine 类解析——OpenCV图像滤波核心引擎(zz)
    gaussBlur
  • 原文地址:https://www.cnblogs.com/linux0537/p/6112156.html
Copyright © 2020-2023  润新知