題目:建立乙個雙鏈表,然後逆置雙鏈表。
程式分析:將雙鏈表逆置,即是將雙鏈表中的元素逆置,依次將雙鏈表的結點按照頭插法插入到乙個新建鍊錶的首位,即可實現雙鏈表元素的逆置
**如下:
#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 釋放...