#ifndef _common_h_
#define _common_h_
#include
#include
#include
#include
#include
#pragma warning(disable:4996)
#endif _common_h_
#ifndef _slist_h_
#define _slist_h_
#include
"common.h"
// slist.h
typedef
int sltdatetype;
typedef
struct slistnode
slistnode;
// 動態申請乙個節點
slistnode*
buyslistnode
(sltdatetype x)
;// 單鏈表列印
void
slistprint
(slistnode* plist)
;// 單鏈表尾插
void
slistpushback
(slistnode*
* pplist, sltdatetype x)
;// 單鏈表的頭插
void
slistpushfront
(slistnode*
* pplist, sltdatetype x)
;// 單鏈表的尾刪
void
slistpopback
(slistnode*
* pplist)
;// 單鏈表頭刪
void
slistpopfront
(slistnode*
* pplist)
;// 單鏈表查詢
slistnode*
slistfind
(slistnode* plist, sltdatetype x)
;// 單鏈表在pos位置之後插入x
void
slistinsertafter
(slistnode* pos, sltdatetype x)
;// 單鏈表刪除pos位置之後的值
void
slisteraseafter
(slistnode* pos)
;// 單鏈表的銷毀
void
slistdestory
(slistnode*
* plist)
;///
// 動態申請乙個節點
slistnode*
buyslistnode
(sltdatetype x)
// 單鏈表列印
void
slistprint
(slistnode* plist)
printf
("over\n");
}// 單鏈表尾插
void
slistpushback
(slistnode*
* pplist, sltdatetype x)
else
tail->next = p;}}
// 單鏈表的頭插
void
slistpushfront
(slistnode*
* pplist, sltdatetype x)
// 單鏈表的尾刪
void
slistpopback
(slistnode*
* pplist)
else
if(prev ==
null
)else
free
(p);}}
// 單鏈表頭刪
void
slistpopfront
(slistnode*
* pplist)
else
}//單鏈表查詢
slistnode*
slistfind
(slistnode* plist, sltdatetype x)
return
null;}
// 單鏈表在pos位置之後插入x
void
slistinsertafter
(slistnode* pos, sltdatetype x)
// 單鏈表刪除pos位置之後的值
void
slisteraseafter
(slistnode* pos)
}// 單鏈表的銷毀
void
slistdestory
(slistnode*
* plist)
}#endif _slist_h_
#include
"slist.h"
intmain()
printf
("尾插成功!\n");
break
;case2:
slistpopback
(&list)
;printf
("刪除成功!\n");
break
;case3:
printf
("請輸入資料(以-1結束):>");
while
(scanf
("%d"
,&input)
&& input !=-1
)printf
("頭插成功!\n");
break
;case4:
slistpopfront
(&list)
;printf
("刪除成功!\n");
break
;case5:
slistprint
(list)
;break
;case6:
printf
("請輸入要查詢的值:>");
scanf
("%d"
,&input)
; tmp =
slistfind
(list, input);if
(tmp)
else
break
;case7:
printf
("插入到哪個數之後:>");
scanf
("%d"
,&input)
; tmp =
slistfind
(list, input)
;printf
("請輸入要插入的值:>");
scanf
("%d"
,&input)
;slistinsertafter
(tmp, input)
;printf
("插入成功!\n");
break
;case8:
printf
("請輸入要刪除的值的前乙個數:>");
scanf
("%d"
,&input)
; tmp =
slistfind
(list, input)
;slisteraseafter
(tmp)
;printf
("刪除成功!\n");
break
;case9:
slistdestory
(&list)
;printf
("摧毀成功!\n");
break
;default
:printf
("選擇錯誤,請重新選擇!\n");
break;}
system
("pause");
system
("cls");
}while(1
);system
("pause");
return0;
}
C語言實現單鏈表基礎操作 增刪查改
typedef int datatype typedef struct listnode listnode 注 1.以下函式都是針對無環單鏈表 2.若可能修改到原煉表頭結點,都要傳二級指標 函式如下 listnode buynode datatype x 開闢新節點 void pushback li...
資料結構單鏈表的增刪查改(c語言實現)
1 單鏈表 typedef int sltdatatype typedef struct slistnode slistnode 2 動態申請乙個結點 slistnode buyslistnode sltdatatype x 3 單鏈表列印 void slistprint slistnode pli...
單鏈表的增刪查改
include includetypedef struct nodenode,linklist int num 查詢給定值的結點,返回結點指標 node findvalue char c,node head return head 查詢給定位置的結點的值 char findindex value n...