2011-11-04 115 views
0

在我过去的一次采访中,我被要求描述一下你如何用餐桌椅模拟餐厅,以及在客人抵达时如何分配给客人,以及以前做出的预订。餐厅餐桌分配的数据结构和算法?

例如,当一组20人进来时,您必须将表加入到一个表中,以使其成为一个组。

当我尝试使用面向对象的简单设计术语进行建模时,他阻止了我,询问是否有任何特定的数据结构或算法用于解决此问题。

我不知道有什么?有人能给我一个指针吗?

回答

1

我想不出任何特定的算法,我的意思是,也许这只是一个问题,看你如何思考,而不是一个问题,它会有一个特别合适的解决方案。

在任何情况下,在我看来,表的物理分布是至关重要的:您只能连接彼此接近的表。通常情况下,您不能将坐着的人移动到不同的桌子上,也不能将整个餐厅的桌子拖得很远。这需要一个模拟表格物理分布的数据结构,即一个具有连接节点的网络。这可能会变得很复杂,包括例如表格之间的距离,网格和走廊之间的距离等。

要查找空闲表,或者获取或释放空闲表,就像典型的表数小,你可以顺序迭代。作为一个学术性的练习,你可能想要考虑一些更加适合这个问题的东西,但是没有足够的要求来做出这个决定。