2010-03-01 54 views
2

我有一個任務,我有以下實現提問:插入和在矩陣中移除元素

insertAtRanks(Integer x, Integer y, Object o): insert a new element to be stored at position (x,y) 

Object removeAtRanks(Integer x, Integer y): remove and return the element at position (x,y) 

它已經要求replaceAtRanks的實施,我必須用參數替換一個位置內的元素。

所以我認爲插入和刪除元素時,矩陣會增加,尺寸減小,但我的問題是怎麼樣?

例如

| 3 6| 
| 2 5| 

如果我在位置(1,1)執行插入8號將在下面發生的呢?

| 3 6| 
| 2 8| 
| null 5| 

如果我不得不在(1,1)後刪除元素,它會回到?

| 3 6| 
| 2 5| 

編輯:

我使用Java進行實施,我使用的類2維數組來表示矩陣。

+0

+1老老實實地聲明這是一個作業問題,並準確地顯示出您在任務中遇到什麼問題 – Kena 2010-03-01 16:21:26

+1

這可能是一個實施決定,或者由您決定,或者應該向教師提問。如果他們沒有指定,他們可能會希望你實施它,看你是否適合。 (順便說一句,只要在相關行/列上存在空值時刪除_only_就會將其刪除)。 – 2010-03-01 16:21:26

回答

1
|3 6| 
|null 8| 
|2 5| 

|3 6| 
|0 8| 
|2 5| 

|3 6| 
|2 8| 

或許多其他形式提出自己作爲替代品。我認爲你必須決定你已被要求執行,然後實現它是什麼。

0

您使用哪種語言,我不知道,但它應該是這樣的:

  • 插入新行,空值
  • 對於i = newSizeOnX直到我到達X(你行) ,隨着我減少,複製 行(m [i + 1] = [i])
  • 然後你只需插入對象的位置m [x] [y]並填寫其餘 m [x] [y '](全部Y'!= Y)
0

截至到某一點,這是規範的問題。

在一個正常的系統中,你既可以:

  • 決定治療的情況下爲禁止異常,如果發生
  • 定義一個特定的預定行爲返回錯誤或警告,是一致的對於你實現的所有功能,並且清楚地記錄下來

例如,用零或非數字預填充矩陣是處理第一個問題的一種典型方法。Matlab如何默認處理這個問題?

它也取決於應用程序。例如,如果您正在處理圖像,則在大多數情況下,您不希望超過原始圖像大小。如果您正在使用聲音,默認情況下可能會在擴展數據序列時插入靜音。什麼對你的應用最有意義?