当前位置: 首页>>代码示例>>C++>>正文


C++ AVL::Prev方法代码示例

本文整理汇总了C++中AVL::Prev方法的典型用法代码示例。如果您正苦于以下问题:C++ AVL::Prev方法的具体用法?C++ AVL::Prev怎么用?C++ AVL::Prev使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AVL的用法示例。


在下文中一共展示了AVL::Prev方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main( void ) {
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    AVL<segment> Tree;
    int n;
    cin >> n;
    vector<segment> seg;
    for (int i = 0; i < n; i++) {
        point pointOne, pointTwo;
        cin >> pointOne.x >> pointOne.y >> pointTwo.x >> pointTwo.y;
        seg.push_back(segment(pointOne, pointTwo));
    }

    vector<point_event> e;
    for (int i = 0; i < n; i++) {
        e.push_back(point_event(min(seg[i].pointOne.x, seg[i].pointTwo.x), 1, i));
        e.push_back(point_event(max(seg[i].pointOne.x, seg[i].pointTwo.x), -1, i));
    }
    sort(e.begin(), e.end());
    double val = numeric_limits<double>::max();
    segment zero(point(val, val), point(val, val));
    for (int i = 0; i < e.size(); i++) {
        int ind = e[i].ind;
        if (e[i].type == 1) {
            Tree.Add(seg[ind]);
            segment cur = Tree.Next(seg[ind]);
            if (!(cur == zero) && crossing(cur, seg[ind])) {
                cout << "Еть пересечение";
                return 0;
            }
            cur = Tree.Prev(seg[ind]);
            if (!(cur == zero) && crossing(cur, seg[ind])) {
                cout << "Есть пересечиние";
                return 0;
            }

        }
        else {
            segment cur = Tree.Next(seg[ind]);
            if (!(cur == zero) && crossing(cur, seg[ind])) {
                cout << "Еть пересечение";
                return 0;
            }
            cur = Tree.Prev(seg[ind]);
            if (!(cur == zero) && crossing(cur, seg[ind])) {
                cout << "Есть пересечиние";
                return 0;
            }
            Tree.Delete(seg[ind]);
        }
    }
    cout << "Нет пересечений";
    return 0;
}
开发者ID:kamiltalipov,项目名称:295-a2,代码行数:54,代码来源:main.cpp


注:本文中的AVL::Prev方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。