題意:要求空間複雜度為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...