雙鏈表的逆序 C程式設計

2021-05-24 05:05:32 字數 1097 閱讀 7744

題目:建立乙個雙鏈表,然後逆置雙鏈表。

程式分析:將雙鏈表逆置,即是將雙鏈表中的元素逆置,依次將雙鏈表的結點按照頭插法插入到乙個新建鍊錶的首位,即可實現雙鏈表元素的逆置

**如下:

#include

#include

typedef struct node

stud;

stud *creat(int n)/*建立鍊錶*/

p->next=null;/*鍊錶的最後乙個結點的後繼為

null*/

return (h); }

/*逆置雙鏈表的原理,依次將原煉表中的結點

用頭插法插入到新的鏈結表中,

新的鍊錶不用分配記憶體*/

stud *reverse(stud *head)

head->next=h;/*頭結點

head

的後繼指向新鍊錶的第乙個結點

h*/

h->prior=head;/*新鍊錶的第一結點

h的前驅指向頭結點

head*/

return head; }

} void dip(stud *q)/*顯示鍊錶*/

} void main()

題目:建立雙鏈表,對其中的資料逆序輸出

程式分析:因為雙鏈表有兩個指標域:

既可以利用後繼指標,從頭結點出發遍歷到尾結點的指標鏈,

也可以利用前驅指標,從尾結點出發遍歷到頭結點的指標鏈。

這樣就可以實現逆序查詢雙鏈表結點,並將結點資料域的資料資訊輸出。

**如下:

#include

#include

typedef struct node

stud;

/*雙鏈表的結構定義*/

stud *creat(int n)/*建立鍊錶*/

p->next=null;/*鍊錶的最後乙個結點的後繼為

null*/

return (h); }

stud *gettp(stud *head)/*查詢最後乙個結點*/

void main()

printf("/n"); }

雙鏈表逆序

雙鏈表之逆序 一 結點結構 雙向鍊錶的資料結構定義如下 typedef struct node list 其中,elemtype可以是任意資料型別如int float或者char等,在演算法中,規定其預設為int型別。二 帶頭結點 本文描述的是雙向鍊錶逆序,鍊錶逆序需要維護3個指標,分別指向前乙個節...

C 迴圈雙鏈表

雙鏈錶比單鏈表多了乙個prev指標域,用來指向乙個節點的前乙個節點,操作起來比單鏈表快捷許多,可以從前從後遍歷整個鍊錶。程式 include include typedef struct dbnode dbnode typedef dbnode dblink void create empty li...

C語言 雙鏈表

還是 程式設計師面試寶典 上的 include include typedef struct student dnode 建立雙鏈表 dnode create else cycle 0 p next null p head head head next head pre null free p 釋放...