假设一个矩形的四个顶点是四个对象,如何做到,从一个顶点出发遍历一遍各个顶点?不同方向的(比如顺时针
和拟时针)这是链表问题么?如何设计一个顶点的属性?
就是一个顶点最小存储什么对象可以从不同角度遍历? 比如一个节点对象存储向右和向左的两个关联对象的信息?
然后传递到下一个对象如此遍历?
如果不是矩形而是多边形怎么办?

解决方案 »

  1.   

    感觉这个问题有点怪怪的!楼主想做图形系统?还是。
    对于图形系统,矩形不会存4个顶点,存左上和右下两个点就够了!
    多边形:存List<Point>,Draw是,序号n与n+1之间的画直线
      

  2.   

    我想顶点属性不外乎,x,y坐标,最多加个编号,还有你说的顺时针,逆时针,相邻顶点。这是一种链式的数据结构。
    简单点也可以就用个数组,数组下标就为编号,只需要保留x,y坐标就可以了。
      

  3.   

    不同的方向可以理解为不同的排序方法,首先必须确定对象比较的含义,,比如说顶点,用2个坐标X,Y来描述.
    顺时针排
    int Compare(Object obj1,Object obj2){
    if(obj1.x<obj2.x){return -1;}
    else if(obj1.x>obj2.x){return 1;}
    else if(obj1.x=obj2.x){
    if(obj1.y<obj2.y){return -1;}else{return 1;}
     }
    }逆时针int Compare(Object obj1,Object obj2){
    if(obj1.x<obj2.x){return 1;}
    else if(obj1.x>obj2.x){return -1;}
    else if(obj1.x=obj2.x){
    if(obj1.y<obj2.y){return 1;}else{return -1;}
     }
    }
      

  4.   


    确实是跟图形系统有关,描述的可能不是很清楚,只是以矩形为例子,
    换种描述方法:
    比如  一个图形系统,可以考虑成类似Visio,有很多元件,元件和元件之间
    用连接线连接,一个元件可能跟多个元件连接,如果从一个元件出发,遍历所有跟它关联的
    元件,要实现这种遍历,元件的属性应该定义什么?刚看了些数据结构方面的东西,感觉数据结构中的“图”,貌似是解决该问题的,只是这块儿不熟。
    欢迎大家继续讨论
      

  5.   

    这种问题,看下数据结构,《图论》,就知道了。如果没有记错,一共有两种。一种是稀疏矩阵,一种是链表。遍历就是bfs或者dfs。