順序表的就地逆置問題


問題描述:編寫一個順序表的成員函數,實現對順序表就地逆置的操作。所謂逆置,就是把(a1,a2,a3,...,an)變成(an,an-1,..,a2,a1);所謂就地,即逆置后的數據元素仍在原來順序表的存儲空間中

涉及變量:temp:Object型變量,用作中轉站

                 i:int型變量,進行交換的元素下標

                 j:int型變量,進行交換的元素下標

涉及教材:《數據結構——Java語言描述(第2版)》 清華大學出版社

 

思路:

 就逆置而言,一般有兩種做法,就地逆置和開辟一個新的順序表空間存放逆置后的數據元素。

后者的思路是先申請與原有的順序表空間一樣大的順序表空間,再從原有順序表的后面開始讀取元素,依次放入新的順序表

這種方法相對簡單,但所占的空間大,不適用於數據元素過多的情況

 

就地逆置,一般是通過一個中間變量,使前后元素交換位置達成目的

當i=0,j=length()-1時,先將a1的值存儲在temp中,再將a1賦值為an,最后將an的值賦為原先的a1,即temp

這是比較常見的交換數據元素的方法,不僅僅適用於本題,在排序中也經常用到

代碼如下:

 

 以上是對順序表就地逆置的一些看法,希望對各位有所幫助

190115 Rewivy


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM