資料結構 單鏈表就地逆置演算法C語言

2021-10-08 17:21:51 字數 659 閱讀 5110

在c語言中為了減少時間和空間,對單鏈表採用就地逆置的方法,話不多說,完整**如下。

#include

#include

#define len sizeof (struct node)

struct node

;//建立動態鍊錶

struct node *

crt_list()

q->next=

null

;//條件為假,退出迴圈,將最後乙個節點標誌為尾結點

return h;

}//輸出鍊錶

void

prt_list

(struct node *h)

}//就地逆置

void

nizhi_list

(struct node *h)

x=h->next;

if(x==

null

)printf

("鍊錶為空");

資料結構 單鏈表的就地逆置

剛完成了嚴蔚敏的資料結構 單鏈表的就地逆置習題 2.21 解題時想到2種方案,特此總結一下 方案1 1遍歷單鏈表,並算出單鏈表的長度n。2定位到節點ai,與節點an i 1 i 1 to n 2 1 也就是單鏈表的一半長度 交換各自的資料 i 方案2 1定位尾節點 2依次將節點插入到尾節點之後 3將...

資料結構 單鏈表的就地逆置

6 1 帶頭結點的單鏈表就地逆置 10 分 本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse l linklist l 要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。v...

單鏈表就地逆置

思路為定義四個工作指標p back p q back q,然後先將p q從鍊錶中摘下,在分別在p back後和q back後插入。最後在重新定位工作指標。注意點 若先全部摘下,否則在中點相遇時p和q back會重疊,使得鍊錶斷開,所以當長度為偶數時到達中點的兩個節點時要跳出迴圈,另外直接交換兩者 迴...