2014-02-27 41 views
0

瞭解數據結構假定節點的鏈表,其中每個節點都有一個名爲bucked的數組,可以存儲一些字符串。試圖瞭解如何在數組中添加項目?

struct NODE 
{ 
    char *bucket[BUCKET_SIZE]; // an array of strings 
    int count;     // number of items in the array 
    Node *next; 
}; 

,並在此列表中的函數原型是插入:

insert(List *list, char *new_string); 

我想明白這意味着什麼。我有一個大小(如:20)的桶(數組),它位於鏈表的結構(節點)內。

「當您向列表中添加值時,如果有空間,可以使用常規的有序數組插入(混洗項目),將它們插入到現有存儲桶中。」

這是我認爲可行的兩種方式。請讓我知道要實施哪一個。 鬥[8]

鍵入:

1 insert "o". 

bucket[0]="o"; 


2 insert "one" 

bucket[0]="o" 

bucket[1]="one" 


3 insert "two" 

bucket[0]= "0" 

bucket[1]="one" 

bucket[2]="two" 


bucket[8] 

B型:

1 insert "o" 

bucket[0]="o"; 


2 insert "one" 

bucket[0]="one" 

bucket[1]="o" 


3 insert "two" 

bucket[0]= "two" 

bucket[1]="one" 

bucket[2]="0" 

或我得到它完全錯誤的還有其他一些東西,它想告訴我。

+0

是這個C語言嗎? – jeremyjjbrown

+0

@jeremyjjbrown是的它是C語言 – shunya

+0

首先明確定義您的示例結構和輸入。 – moeCake

回答

0

這實際上取決於您如何解釋「常規有序數組插入」和「混洗項目」。

「有序數組插入」,是否意味着「排序數組插入」?如果是這樣,你的建議都不會起作用。相反,你需要一個插入,在數組的正確位置插入正確的值。如果沒有,那麼你的任何建議都會起作用(但首先,我們來考慮下一個短語)。

通過「洗牌項目」,是否意味着「不斷推送項目」?如果是這樣,你會想要類型b。如果沒有,你需要輸入a。

由於這看起來不像一個標準的圖書館要求或任何東西,你可能會有更好的運氣問你的要求的來源。另外,正如moeCake所指出的,當count> BUCKET_SIZE時,你也必須處理這種情況。