刪除線性表中所有值為x的陣列元素

2021-09-27 15:27:01 字數 717 閱讀 2056

刪除線性表中所有值為x的陣列元素。

比如一串數字值為 1,2,3,2,4,5,2,6,2

刪除值為2的元素

這個問題並不難但煩人的是要進行資料的覆蓋!那麼如果對從前往後的每個值為x的數進行覆蓋

事情就會變成這樣:

1 2 3 2 4 5 2 6 2

1 3 2 4 5 2 6 2

1 3 4 5 2 6 2

1 3 4 5 6 2

1 3 4 5 6

這樣的話這個簡單的陣列都需要遍歷5次並進行很多次覆蓋才能得到最終結果。這樣的話時間複雜度就會很高。

所以我們選擇一邊遍歷一遍覆蓋的方法。

取乙個k用來存放非x資料元素的覆蓋位置。

現在遍歷這個陣列

1,2,3,2,4,5,2,6,2

剛開始k=0,i=0

1!=2, a[k]=a[i],k=k+1=1(0的位置已經放了值為非x的數)

2==2

3!=2,a[1]=a[2],k=k+1=2(1的位置已經放了值為非x的數)

…依此類推

**如下:

public

static

intdelsame

(int x,

int num)

//刪除陣列num中值為x的資料元素

}return k;

//新陣列的長度

}

刪除單鏈表中所有值為x的元素

刪除所有值為x的單鏈表中的元素 首先,我們先考慮第一種情況,就是說值刪除第乙個值為x的元素,這個比較簡單,只需要挨個比較x和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下...

刪除鍊錶中所有值為k的節點

給定乙個單鏈表,刪除其中值為 的所有節點。例如 1 2 6 3 4 5 6 刪除其中值為6的節點,返回 1 2 3 4 5 這是乙個簡單的鍊錶操作題。刪除是要考慮的節點所在的位置 頭部,中間和尾部 分開處理一下好了。主要過程如下描述 i.wh ileh ead va l ta rget head h...

刪除鍊錶中所有值為val的節點

題目描述 問題 1 2 3 4 val 2 要求輸出為 1 3 4 解題思路 1 遍歷一遍鍊錶,對比每個節點,刪除值為val的節點 2 需要注意的點 一般來說遍歷都是從頭開始,但是在這種沒有頭節點的鍊錶中勢必要考慮若第乙個節點就為所要刪除的節點時該如何解決 if head return head w...