队列应用:识别图元

这篇博客介绍了如何利用队列解决矩阵中连通'1'元素的识别问题。通过顺序遍历矩阵,遇到'1'则入队,并标记相同ID,利用类似图的宽度优先搜索策略,直到队列为空。编码时注意坐标变量的使用和宏定义的括号问题。
摘要由CSDN通过智能技术生成

问题描述

给出一个m × m的矩阵,’0’表示图形背景,’1’表示图元的一个点。我们的任务是将矩阵中连成一片的’1’(图元)标记出来。

解决方案

利用队列来实现。按顺序遍历矩阵的每一个点。如果该点为’1’,将该点入队。然后取出队列中的点,对该点四周(上下左右)的点进行扫描,将标记为’1’的点入队,同时将这些点都标记位同一个id值,然后,再次将扫描原点置为从队列中取出的新点,重复上述步骤直到队列空。然后遍历矩阵中的下一个点直到矩阵遍历完成。

算法类似于图的宽搜。代码如下:

//识别图元(矩阵中连成一片的1),将属于同一图元的点编号
#include<iostream>
using namespace std;
#define X 7
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值