)//沒找到 「尾插法」
else
if(pk == h->first)
// 找到的是第乙個"頭插法"
else
//中間插入
h->num ++;}
void
delete_x
(head * h, elemtype x)
binode * px = h->first;
while
(px)
px = px->next;}if
(px ==
null
)//沒有找到
if(px == h->first)
//找到的是第乙個
}else
if(px == h->last)
//找到的是最後乙個
else
//刪除中間的結點
free
(px)
; h->num --;}
void
delete_all_x
(head * h, elemtype x)
binode * px = h->first;
binode * ps = h->first;
while(1
) px = px->next;}if
(px ==
null
)//沒有找到
ps = px->next;
if(px == h->first)
//找到的是第乙個
}else
if(px == h->last)
//找到的是最後乙個
else
//刪除中間的結點
free
(px)
; h->num --;}
}void
(head * h)
if(h->first ==
null
)//順序輸出
binode * pk = h->first;
while
(pk)
printf
("\n");
//逆序輸出
binode * pr = h->last;
while
(pr)
printf
("\n--------------\n");
//列印結點的個數
printf
("num == %d "
,h->num)
;printf
("\n--------------\n");
}bilinkedlistwithhead.h
#ifndef __bilinkedlistwithhead_h__
#define __bilinkedlistwithhead_h__
#include
#include
typedef
int elemtype ;
//資料元素的型別
//資料結點
typedef
struct binode
binode;
//頭結點的型別
typedef
struct head
head;
void
print
(head * h)
;void
add_binode
(head * h, binode * p)
;void
delete_x
(head * h, elemtype x)
;void
creat_order_linkedlist
(head * h)
;head *
creat_bilinkedlist_head
(void);
void
delete_all_x
(head * h, elemtype x)
;#endif
main.c
#include
"bilinkedlistwithhead.h"
intmain()
判斷帶頭結點的迴圈雙鏈表是否對稱
include stdafx.h include include includetypedef int type typedef struct lnode 定義鍊錶結點的資料結構 lnode typedef lnode node typedef struct dnode 定義雙鏈表結點的資料結構 d...
帶頭結點的單鏈表
帶頭結點的單鏈表 1 頭結點 在棧區開闢,指標域指向第乙個首元結點,資料域不儲存資料,可以儲存當前結點的個數 2 普通結點 無論是頭結點還是普通結點都是乙個結構體型別,由指標域和資料域組成 指標域指向下乙個結點,儲存下乙個結點的位址 資料域可以設定成聯合體型別,成員由資料元素和結點個數組成,之所以將...
帶頭結點的單鏈表
include include define error printf struct node typedef int elementtype typedef struct node list typedef struct node node struct node list initialize ...