社区
数据结构与算法
帖子详情
在已知线段中找出回路的最快方法?
Kvci
2006-07-27 10:16:29
有N条线段,其端点坐标保存在数组中,怎么样快速找出这些线段围成的回路?
例如线段保存在x[N][2],y[N][2]中
x[i][0],y[i][0]是第i条线段的第一个端点
x[i][1],y[i][1]是第i条线段的第二个端点
现在要找出其中的线段形成的回路
怎么找?
...全文
389
11
打赏
收藏
在已知线段中找出回路的最快方法?
有N条线段,其端点坐标保存在数组中,怎么样快速找出这些线段围成的回路? 例如线段保存在x[N][2],y[N][2]中 x[i][0],y[i][0]是第i条线段的第一个端点 x[i][1],y[i][1]是第i条线段的第二个端点 现在要找出其中的线段形成的回路 怎么找?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kvci
2006-07-29
打赏
举报
回复
不好意思
没描述清楚
所有线段是已经处理过的
线段只会在端点处相交
且一旦有回路,回路之间是不会相交或重叠的
其实就是要找出所有的闭合曲线来
我再填充颜色
对于没有闭合的不需要填充
zzwu
2006-07-29
打赏
举报
回复
...
直到找到一个边,它的尾端和第一边的首端相连,就得到一个回路,
zzwu
2006-07-29
打赏
举报
回复
那就更容易些了:
从任何一边开始,依此进行边到相连边的搜索,
直到找到一个边,它和尾端和第一边的首端相连,就得到一个回路,
如果找完所有边都找不到下一根相连边,又不能和第一根边相接,则结果为不封闭的折线,
重复以上过程,直到所有边用完.
实现时可用一点小技巧,如
*已经用去的边从原来的边的集合中去掉,
*先排序,再搜索,
等.
AFIC
2006-07-28
打赏
举报
回复
两个斜着的8字,不过我说也许,因为比较牵强。
zzwu
2006-07-28
打赏
举报
回复
为什么说15个?
zzwu
2006-07-28
打赏
举报
回复
这一问题在csdn中以前讨论过.
方法就是利用邻接关系,从任何一点开始,依此进行点-边-点-边-点...的搜索,
直到找到一个点,它和搜索路径中先前出现的某个点相重,就得到一个回路.
对各种不同的路径进行完整的搜索,就可得到所有不同的回路.
但这些回路有可能相同,如abc,bca,cab,代表同一回路,
如不考虑方向,则bac,acb,cba也和上面3个回路是同一回路,
从所有回路中可以找出所有最小回路,也就是回路内不包含其它回路的回路.
它们中常常是最感兴趣的回路.
AFIC
2006-07-28
打赏
举报
回复
…………
恩,也许还是15个。
老了,不中用了……
zzwu
2006-07-28
打赏
举报
回复
田字所包含的回路数目还不只9个,而是13个.
AFIC
2006-07-28
打赏
举报
回复
如果重复怎么办?
比如线段围成的最终图形是一个 田 字形,
那所谓的回路将有9个,你到底要哪个?
Kvci
2006-07-28
打赏
举报
回复
0.12.2
zzwu
2006-07-28
打赏
举报
回复
这种说法确实比较牵强了。
Java try
中
return 与 finally 的执行顺序
因为这可能会让代码的逻辑变得复杂,还容易引发难以排查的问题。语句执行之前运行,不过要留意返回值的情况。并且要注意,应避免在。语句,那么这个返回值就会覆盖掉。语句执行前就已经执行了。在 Java 里,当。
其实return和finally的执行顺序问题非常简单,你只有看看代码的指令就清楚咯
最近在整理Java常见的面试题,刚好整理到return和finally的执行顺序问题,这个很多小伙伴比较困惑,所以波波老师就通过指令带大家彻底弄清楚下 return和finally的顺序问题 分析如下的代码程序,给出输出结果,并给出原因 public class Demo02 { public static void main(String[] args) { Demo02 demo02 = new Demo02(); System.out.println(.
面试实战 问题二十五 Java异常处理
中
return语句和finally块的执行顺序
面试实战 问题二十五 Java异常处理
中
return语句和finally块的执行顺序
JAVA
中
try、catch、finally带return的执行顺序
异常处理
中
,try、catch、finally的执行顺序,大家都知道是按顺序执行的。即,如果try
中
没有异常,则顺序为try→finally,如果try
中
有异常,则顺序为try→catch→finally。但是当try、catch、finally
中
加入return之后,就会有几种不同的情况出现,下面分别来说明一下。也可以跳到最后直接看总结。 一、try
中
带有return private int testReturn1() { int i = 1; try {
Java finally执行顺序
首先我们来看题 当做这道题时我的答案是“ABAA”。因为先执行try得到A然后执行finally 得到B 再回到try
中
的return 得到A 再输出个A。但是当我看答案的时候不是这样的 正确答案是ABAB 因此得到一个结论 finally语句块在return语句之后,return返回值之前 看下一个例子 运行结果 由此我们可知 输出了try之后 运行了b=b+80 但是没有返回 就去执行finally 等到finally执行完以后才返回结果 例子二 执行结果 由结果可得 先执行了try 然后
数据结构与算法
33,026
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章