我提出以下問題: 你如何存儲下面給出的數據(數據結構將ü選哪):數據結構面試問題
A-1-2-3-4-5-6
|
B-7-8-9-10-11
|
C-12-14-15-16-17
我答: 因爲這看起來像一堆其頭節點鏈接在一起的列表。 使用兩節點類型一個ID的常規節點類型,定義如下:
Struct node1
{
int val;
struct node*next;
};
// to store the numerical part of the data
struct node2
{
int val;
struct node *down;
struct node* next;
};
//this is the heads of each list.. for the alphabet part of the question.
面試官的反應: 這是最好的數據結構U能想到的。 每個節點所需的遍歷和內存方面如何?
我對此的回答: 如果我們創建某種散列表,我們可以更好地遍歷。
我的問題給你的同志們: 我們可以做得更好嗎?有沒有更好的方法來存儲這種類型的數據?
我們假設數據是全部數字(甚至每個頭節點處的數據),並且非串行可能有重複。什麼是正確答案? 尋找在C/C++
@xtofl ..感謝編輯。 – tomkaith13 2009-12-09 19:28:40
這是一個愚蠢的問題,因爲沒有足夠的信息來達到「正確」的答案。我的答案是字符串,因爲你什麼都沒告訴我數據是什麼,它如何使用或如何修改。你想快速找到15?這裏是 - > 15.O(1)查找。 – 2009-12-09 19:28:45
如果面試官對於獲得有用的答案是認真的,他們可能期望您提出有關數據性質的問題,例如使用的上下文,內存/ CPU性能折衷的位置,等等。 – 2009-12-09 19:32:04