陣列與鍊錶等順序表逆置

2021-04-27 00:22:42 字數 630 閱讀 5028

一)陣列的逆置

(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 ...