java - 位置层次数据结构

标签 java data-structures graph tree

位置层次结构的数据结构或数据模型

I have the following location types,

Airport
City
State
Country

Hierarchy is Country has a state, State has a City and a City has airport.

City:San Francisco To City:Frankfort    Rate is 100$ is stored in the system in some form.

当有人询问从机场:SFO 到机场:FRA 的费率时,应用程序应查找从机场:SFO 到机场:FRA 的任何可用费率。

因为我们没有一个(我们只有城市到城市),应用程序应该检查更高一级的机场,即城市。因此,应用程序应该能够找到机场城市:SFO 和机场城市:法兰克福,并检查费率是否可用。在这种情况下,它选择 100 美元,因为城市:旧金山到城市:法兰克福的汇率保持为 100 美元。

如何在数据结构中表示此位置层次结构(在 Java 中)?图或树会有用吗?如果可以,请提供一些 sample 给我。

最佳答案

IMO,自下而上或自上而下有两种方式(尽管两者实际上都基于 HAS-A 关系:

自下而上:

1, 有 Airport, City, State, Country 类

2、Airport有City,City有State,State有Country变量

现在无论何时你想要费率,你都可以转到机场对象,检查城市->州->国家等并相应地收费

自上而下:

1, 有 Country, State, City, Airport 类

2、Country会有一个List包含State,State会有List of City,City会有Airport List

我更喜欢第一个,因为维护父级的 1 值比维护所有子级的列表更容易/高效。

关于java - 位置层次数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16539356/

相关文章:

c++ - 有没有办法固定 vector 大小,以便它自动删除前面的元素?

graph - 从邻接矩阵计算路径矩阵

java - 当 HashMap 的初始容量不是 2 的幂时指定它是否比根本不指定更好?

java - 从 php 执行 jar 文件时无法连接到 X11 服务器

java - 部署使用 Netbeans 编译的 Java 应用程序 - 找不到第 3 方类

java - 反转链表中的 K 个节点

algorithm - 给定一棵二叉树,计算其中存在的二叉搜索树的数量

c++ - 在 ogdf::GraphCopy 中复制一条边

c++ - 如何在图中找到 3 条边的负加权循环?

java - 使用 jdbc 的 SQL 语法错误