題目:長度為n的順序表l,編寫乙個時間複雜度為o(n),空間複雜度為o(1)的演算法,該演算法刪除線性表中所有值為x的資料元素。
演算法思想:用k記錄不等於x的元素個數,即需要儲存的元素個數。邊掃瞄l邊統計k,並將不等於x的元素向前放置k位置上,最後修改l的長度。
**:void del_x(sqlist &l, elemtype x){
int k = 0;
for(i=0; i1x
3x56
x54解析:
函式型別void,不返回值。
函式需要順序表位址和x兩個引數。函式可以直接操作l。
k記錄不等於x的元素個數,k初始值為0。
for迴圈遍歷整個順序表,如果if條件成立,將第i個位置的元素放到第k個位置。
比如上面的順序表,第一次for迴圈,i=0,k=0,滿足if語句,第乙個位置元素保留。第二次for迴圈,if語句不成立,i=1,k=0;直接執行第三次迴圈,if語句成立,i=2,k=1,把第二個元素的位置放到第乙個位置,等於刪除了x。
遍歷到最後,前k個元素均不等於x。將l.length設定為k,只保留前k個元素,刪除了所有的x。
單鏈表刪除所有值為x的元素 順序表基本操作上機實驗
理解線性結構的基本概念,掌握兩種基本的儲存結構 順序儲存結構 順序表 和鏈式儲存結構 單鏈表 用c語言實現在兩種儲存結構上的對應操作 包括建立 刪除插入元素 遍歷等 鞏固強化c程式設計的基本方法和能力。完成順序表的建立 元素刪除 遍歷等操作,具體內容如下 有序的一組整數 1,2,3,4,6 設計順序...
刪除線性表中所有值為x的陣列元素
刪除線性表中所有值為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 2 3 順序表刪除值為x的元素
題目描述 長度為n的順序表l,編寫乙個時間複雜度為o n 空間複雜度為o 1 的演算法,該演算法刪除線性表中所有值為x的資料元素。演算法思想 解法1.查詢到乙個元素值等於x的時候就覆蓋掉它,從前往後開始移動元素 解法2.一趟迴圈。重新往線性表裡填元素。如果當前元素不等於x,就往線性表裡填入這個元素後...