算法5-5:线段交叉问题

来源:互联网 发布:windows内核攻击游戏 编辑:程序博客网 时间:2024/05/21 09:39

问题


给定一系列线段,每条线段可以是水平或者竖直。求相交的线段


解决


算法的基本思想是先将线段以x坐标进行排序。做一条扫描线,从左往右扫描,也就是下图中的红线。


当进入一条水平的线时,记录该线段的y坐标。



当走出水平线时,从二叉查找树中删除该线段的y坐标。



当遇到竖直的线时,判断该线段范围内有无之前记录的坐标即可判断两线是否相交。

0 0
原创粉丝点击