社区
C#
帖子详情
请教一个数据结构的简单问题。
康斯坦汀
2011-10-31 02:48:15
假设一个矩形的四个顶点是四个对象,如何做到,从一个顶点出发遍历一遍各个顶点?不同方向的(比如顺时针
和拟时针)这是链表问题么?如何设计一个顶点的属性?
就是一个顶点最小存储什么对象可以从不同角度遍历? 比如一个节点对象存储向右和向左的两个关联对象的信息?
然后传递到下一个对象如此遍历?
如果不是矩形而是多边形怎么办?
...全文
139
6
打赏
收藏
请教一个数据结构的简单问题。
假设一个矩形的四个顶点是四个对象,如何做到,从一个顶点出发遍历一遍各个顶点?不同方向的(比如顺时针 和拟时针)这是链表问题么?如何设计一个顶点的属性? 就是一个顶点最小存储什么对象可以从不同角度遍历? 比如一个节点对象存储向右和向左的两个关联对象的信息? 然后传递到下一个对象如此遍历? 如果不是矩形而是多边形怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoyu821120
2011-10-31
打赏
举报
回复
这种问题,看下数据结构,《图论》,就知道了。如果没有记错,一共有两种。一种是稀疏矩阵,一种是链表。遍历就是bfs或者dfs。
康斯坦汀
2011-10-31
打赏
举报
回复
更正:如何从一个元件出发
康斯坦汀
2011-10-31
打赏
举报
回复
[Quote=引用 1 楼 sdl2005lyx 的回复:]
感觉这个问题有点怪怪的!楼主想做图形系统?还是。。。。
对于图形系统,矩形不会存4个顶点,存左上和右下两个点就够了!
多边形:存List<Point>,Draw是,序号n与n+1之间的画直线。。。
[/Quote]
确实是跟图形系统有关,描述的可能不是很清楚,只是以矩形为例子,
换种描述方法:
比如 一个图形系统,可以考虑成类似Visio,有很多元件,元件和元件之间
用连接线连接,一个元件可能跟多个元件连接,如果从一个元件出发,遍历所有跟它关联的
元件,要实现这种遍历,元件的属性应该定义什么?
刚看了些数据结构方面的东西,感觉数据结构中的“图”,貌似是解决该问题的,只是这块儿不熟。
欢迎大家继续讨论。。。
mikeowenlibo
2011-10-31
打赏
举报
回复
不同的方向可以理解为不同的排序方法,首先必须确定对象比较的含义,,比如说顶点,用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;}
}
}
xiaoyu821120
2011-10-31
打赏
举报
回复
我想顶点属性不外乎,x,y坐标,最多加个编号,还有你说的顺时针,逆时针,相邻顶点。这是一种链式的数据结构。
简单点也可以就用个数组,数组下标就为编号,只需要保留x,y坐标就可以了。
sdl2005lyx
2011-10-31
打赏
举报
回复
感觉这个问题有点怪怪的!楼主想做图形系统?还是。。。。
对于图形系统,矩形不会存4个顶点,存左上和右下两个点就够了!
多边形:存List<Point>,Draw是,序号n与n+1之间的画直线。。。
Python训练营103期开班典礼直播回放
#《5天Python闯关训练营》学习计划#挑战周期:12月16日—12月20日直播安排:开班典礼:12月16日晚8点,周老师为大家讲解本课的学习方法作业训练:12月20日晚8点,周老师为大家进行作业实战训练开班后大家可以先准备第1-2天的课程学习,完成相应的软件安装及环境搭建学习服务:12.16-12.20日为本课正式服务周期期间遇到学习
问题
可社群
请教
,群内安排助教老师答疑
数据结构
学习心得体会
时间转眼即逝,一转眼一学期的
数据结构
课就已经快要结束了,我对第一节课的时候老师向我们介绍云班课时的场景还历历在目,老师兴致勃勃的介绍着
数据结构
课的作用,重要性。老师每节课都充满活力让我们每节课都不好意思打盹。在学习这门课程以前,我觉得编程只要会
简单
的写代码就好了。然而实际上
数据结构
才是计算机界的大佬。着计算机应用领域的延伸与扩展,
数据结构
类的
问题
占据了现在计算机技术领域的大部分,数据元素之间的关系
超硬核十万字!全网最全
数据结构
代码,随便秒杀老师/面试官,我说的
本文代码实现基本按照《
数据结构
》课本目录顺序,外加大量的复杂算法实现,一篇文章足够。能换你
一个
收藏了吧?
如何学好
数据结构
与算法?这篇文章带你搞定这个难题
参考视频‘算法之神’左神带你搞定这道BAT大厂高频面试题/
数据结构
与算法/既需要思路又需要coding能力 为什么要学习
数据结构
随着人工智能的发展,人工智能已经渗透到各个行业,算法工程师非常火爆,急缺大量人才,年薪也越来越高。刚毕业30-40万很常见,很多人都想学习算法,那究竟如何下手呢? 遇到
一个
实际
问题
,需要解决两个事情: (1)如何将数据存储到计算机中;(2)用什么方法策略解决
问题
;前者是
数据结构
,后者是算法。只有
数据结构
没有算法,相当于只把数据存储到计算机中而没有有效的方法去处理,就像一幢只有
数据结构
与算法面试题80道
1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成
一个
排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的
数据结构
如下: struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNo
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章