王道課後習題2 2 3 順序表刪除值為x的元素

2021-09-26 05:49:28 字數 1971 閱讀 6838

題目描述:

長度為n的順序表l,編寫乙個時間複雜度為o(n)、空間複雜度為o(1)的演算法,該演算法刪除線性表中所有值為x的資料元素。

演算法思想:

解法1.查詢到乙個元素值等於x的時候就覆蓋掉它,從前往後開始移動元素

解法2.一趟迴圈。重新往線性表裡填元素。

如果當前元素不等於x,就往線性表裡填入這個元素後i++。

如果當前元素等於x,i就只++。

這個時候就需要有乙個變數new_index來記錄當前新的線性表中的下標。

如果當前元素不等於x,填入這個元素後new_index就+1

如果當前元素等於x,new_index不變化。

解法3:如果當前元素不等於x,那麼元素就往前移動k個位置。

如果當前元素等於x,那麼k++。

k是當前等於x的元素的個數。l.length-=k

k就相當於記錄下現在有多少個等於x的元素,等遇到不等於x的元素的時候,該元素就相應地向前移動k個位置。

比如,設x=2,在【1,2,2,3】中,先置k=0。

【1,2,2,3】,a[0]=1,不等於2,往前移動0個位置,a[1]=2,a[2]=2,k此時為2

a[2]=3,不等於2,所以往前移動2個位置

核心**:

int del_x_1(sqlist &l,int x)

sqlist;

/*演算法思想:

查詢到乙個元素值等於x的時候就覆蓋掉它,從前往後開始移動元素

*/int del_x_1(sqlist &l,int x)

//兩個for迴圈。時間複雜度為n平方

}}/*

演算法思想:

一趟迴圈。重新往線性表裡填元素。

如果當前元素不等於x,就往線性表裡填入這個元素後i++。

如果當前元素等於x,i就只++。

這個時候就需要有乙個變數new_index來記錄當前新的線性表中的下標。

如果當前元素不等於x,填入這個元素後new_index就+1

如果當前元素等於x,new_index不變化。

*/int del_x_2(sqlist &l,int x)

l.length=new_index;

return 0;}/*

演算法思想:

如果當前元素不等於x,那麼元素就往前移動k個位置。

如果當前元素等於x,那麼k++。

k是當前等於x的元素的個數。l.length-=k

k就相當於記錄下現在有多少個等於x的元素,等遇到不等於x的元素的時候,該元素就相應地向前移動k個位置。

比如,設x=2,在【1,2,2,3】中,先置k=0。

【1,2,2,3】,a[0]=1,不等於2,往前移動0個位置,a[1]=2,a[2]=2,k此時為2

a[2]=3,不等於2,所以往前移動2個位置

*/int del_x_3(sqlist &l,int x)

else

// if(l.data[i]==x)

// k++;

// else

// l.data[i-k]==l.data[i];

/*【2,1,2,3】

k=0.

i=0,a[0]=2=x,k=1;

i=1,a[1]=1!=x,a[0]=a[1]【1,1,2,3】

i=2,a[2]=2=x,k=2;

i=3,a[3]=3!=x,a[i-k]=a[1]=a[3];*/}

l.length=l.length-k;

return 0;

}int initsqlist(sqlist &l)

int assignvalue(sqlist &l,int len)

return 0;

}int printflist(sqlist &l)

}int main()

鍊錶課後複習題 王道

目錄 1.設計乙個遞迴演算法,刪除不帶頭結點的單鏈表l中所有值為x的結點。2.刪除帶頭結點的單鏈表l中所有值為x的結點。3.在帶頭結點的單鏈表l中從尾到頭反向輸出每個結點的值 4.帶頭結點單鏈表l中刪除乙個最小值結點的比較高效的演算法,假設最小值結點唯一 5.將帶頭結點的鍊錶就地逆置 明日繼續更 以...

王道資料結構線性表課後習題

1.1.從順序表中刪除具有最小值的元素 假設唯一 並由函式返回被刪除的元素的值,空出的位置由最後乙個元素填補,若順序表為空則顯示出錯資訊並退出執行 bool del min sqlist l,elemtype value l.data pos l.data l.length 1 空出的位置由最後乙個...

2019考王道資料結構順序表習題

個人粗糙整理,由於不斷除錯,略顯粗糙,請見諒。include include define maxsize 50 typedef int elemtype typedef struct 定義順序表的儲存型別 sqlist bool del min sqlist q,elemtype e q.leng...