順序表 元素逆置(首尾交換)

2021-10-12 09:57:49 字數 618 閱讀 8373

題意:要求空間複雜度為o(1)

順序表的儲存結構:

typedef

struct

sqlist;

分析:

這裡要實現元素的逆置。想想和單鏈表的區別。

這裡如何逆置? 單鏈表是如何逆置的?

這裡是首尾交換元素,常用那個交換操作。而單鏈表有兩種方法,一是頭插法,二是修改指標。

思路:

1.定義迴圈變數i 和中間變數x,用於交換,這裡中間變數注意型別

2.通過迴圈,將首尾元素交換,條件為i > 中間那個數。

3.交換常用操作

x = l.data[i];

l.data[i] = l.data[l.length -i-1]//這裡要理解

l.data[l.length -i-1] = x;

c**實現:

void

reverse

(sqlist & l)

}

DS 002 順序表 逆置所有元素

問題.設計乙個高效的演算法,將順序表所有元素逆置,要求演算法的空間複雜度為o 1 演算法思想 將第乙個元素與最後乙個元素互換,第二個元素與倒數第二個元素互換,以此類推。偽 void reverse sqlist l elemtype temp 中間變數 for i 0 i解析 空間複雜度是o 1 表...

順序表的就地逆置

讀入乙個順序表,實現順序表的就地逆置。輸入 先輸入乙個小於100的正整數n,再從小到大的輸入n個正整數,建立乙個順序表,然後實現順序表的就地逆置。輸出 按順序輸出逆置後的順序表的所有元素,每個元素佔一行。輸入樣例 3 300 3000 50000 輸出樣例 50000 3000 300 includ...

順序表的就地逆置

6 1 順序表建立和就地逆置 10 分 本題要求實現順序表的建立和就地逆置操作函式。l是乙個順序表,函式listcreate sq sqlist l 用於建立乙個順序表,函式listreverse sq sqlist l 是在不引入輔助陣列的前提下將順序表中的元素進行逆置,如原順序表元素依次為1,2...