2011-11-04 73 views
0

在我過去的一次採訪中,我被要求描述一下你如何用餐桌椅模擬餐廳,以及在客人抵達時如何分配給客人,以及以前做出的預訂。餐廳餐桌分配的數據結構和算法?

例如,當一組20人進來時,您必須將表加入到一個表中,以使其成爲一個組。

當我嘗試使用面向對象的簡單設計術語進行建模時,他阻止了我,詢問是否有任何特定的數據結構或算法用於解決此問題。

我不知道有什麼?有人能給我一個指針嗎?

回答

1

我想不出任何特定的算法,我的意思是,也許這只是一個問題,看你如何思考,而不是一個問題,它會有一個特別合適的解決方案。

在任何情況下,在我看來,表的物理分佈是至關重要的:您只能連接彼此接近的表。通常情況下,您不能將坐着的人移動到不同的桌子上,也不能將整個餐廳的桌子拖得很遠。這需要一個模擬表格物理分佈的數據結構,即一個具有連接節點的網絡。這可能會變得很複雜,包括例如表格之間的距離,網格和走廊之間的距離等。

要查找空閒表,或者獲取或釋放空閒表,就像典型的表數小,你可以順序迭代。作爲一個學術性的練習,你可能想要考慮一些更加適合這個問題的東西,但是沒有足夠的要求來做出這個決定。