一)陣列的逆置
(1)演算法
#indclude
#define n 8
main() ;
int i,j,t;
for(i=0,j=n-1;inext; //(1)
y->next = r; //(2)
r = y; //(3)
y = t; //(4) }
return r; //返回逆置後的鍊錶 }
/**功能:初始化鍊錶
*輸入:無
*輸出:無
*返回值:無 */
void init_link(void)
} main()
printf("/n");
//逆置鍊錶
reverse_link = reverse(example_link);
printf("逆置後的鍊錶數值:/n");
pnext = reverse_link;
while(pnext != null)
getch();
}//endmain()
(2)時間複雜度
由於 reverse函式須遍歷整個鍊錶,所以時間複雜度為o(n).
鍊錶就地逆置
就地逆置,就是在不借助任何中間變數的情況下,逆置一單鏈表。演算法思路 逆置後的點鍊錶初始為空,表中的節點不是新生成的,而是從原鍊錶當中一次 刪除 再逐個頭插到逆置表中。設逆置鍊錶的初始態為空表,刪除 已知鍊錶中 的第乙個節點,然後將它 插入 到逆置鍊錶的 表頭 即使得他成為逆置鍊錶中 新 的第乙個節...
鍊錶的逆置
5.鍊錶的逆置 已知head指向乙個帶頭節點的單向鍊錶,鍊錶中每個結點包含資料域和指標域。用鍊錶實現該鍊錶的逆置,並輸出。例如 輸入 5 整數表示要輸入的字元個數 abcde 輸出 edcba 注意 不允許通過改變每個節點的資料域來實現效果,必須改變鍊錶連線順序發生逆置。我寫的 如下 include...
鍊錶的逆置
剛剛除錯出來,趁熱寫一下。輸入多個整數,以 1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進行逆置,並輸出逆置後的單鏈表資料。input 輸入多個整數,以 1作為結束標誌。output 輸出逆置後的單鏈表資料。sample input 12 56 4 6 55 15 33 62 ...