//整個工程所要可能會用到的標頭檔案
common.h
#ifndef _common_h_
#define _common_h_
#include
#include
#include
#include
#include
#define datatype int
#endif
textmain.c
#define _crt_secure_no_warnings 1
#include
"slist.h"
intmain()
break
;case2:
printf
("請輸入要插入的資料");
while
(scanf
("%d"
,&item)
, item !=-1
)break
;case3:
//顯示
slistshowlist
(&mylist)
;break
;case4:
//尾刪
slistpopback
(&mylist)
;break
;case5:
//頭刪
slistpopfront
(&mylist)
;break
;case6:
printf
("請輸入要插入的值:>\n");
scanf
("%d"
,&item)
;//按值插入
slistinsertval
(&mylist, item)
;break
;case7:
printf
("請輸入需要刪除的值:>\n");
scanf
("%d"
,&item)
;//按值刪除
slistdeleteval
(&mylist, item)
;break
;case8:
printf
("請輸入要查詢的資料:>\n");
scanf
("%d"
,&key)
;//按值查詢
p =slistfindval
(&mylist, key);if
(p == null)
printf
("查詢的資料不存在.\n");
else
printf
("查詢的資料的位址為:>%p\n"
, p)
;break
;case9:
//排序
slistsort
(&mylist)
;break
;case10:
//逆置
slistreverse
(&mylist)
;break
;case11:
//長度
slistlength
(&mylist)
;break
;case12:
//清除
slistclear
(&mylist)
;break
;default
:printf
("輸入錯誤,請重新輸入.........\n");
break;}
system
("pause");
system
("cls");
}return0;
}
slist.h
#ifndef _slist_h_
#define _slist_h_
#include
"common.h"
typedef struct slistnode
slistnode;
typedef struct slist
slist;
slistnode *
_buynode
(datatype x)
void
slistinit
(slist *plist)
;void
slistshowlist
(slist *plist)
;bool
slistpushback
(slist *plist,
datatype x)
;bool
slistpushfront
(slist *plist,
datatype x)
;bool
slistpopback
(slist *plist)
;bool
slistpopfront
(slist *plist)
;void
slistinsertval
(slist *plist,
datatype x)
;bool
slistdeleteval
(slist *plist,
datatype x)
;slistnode*
slistfindval
(slist *plist,
int pos)
;void
slistsort
(slist *plist)
;void
slistreverse
(slist *plist)
;size_t slistlength
(slist *plist)
;void
slistclear
(slist *plist)
;//上面是函式的宣告
//下面事函式的實現
void
slistshowlist
(slist *plist)
printf
("over.\n");
}void
slistinit
(slist *plist)
bool
slistpushback
(slist *plist,
datatype x)
bool
slistpushfront
(slist *plist,
datatype x)
bool
slistpopback
(slist *plist)
bool
slistpopfront
(slist *plist)
void
slistinsertval
(slist *plist,
datatype x)
else
plist-
>size++;}
bool
slistdeleteval
(slist *plist,
datatype x)
slistnode*
slistfindval
(slist *plist,
int key)
void
slistsort
(slist *plist)
else
p = q;}}
}void
slistreverse
(slist *plist)
}size_t slistlength
(slist *plist)
void
slistclear
(slist *plist)
plist-
>last = plist-
>first;
plist-
>size--;}
#endif
如有大佬有更好的建議,****1846074273
C 實現單鏈表的基本功能
鍊錶是指使用鏈結的方式儲存的線性表,一般乙個單鏈表結點由資料域和指標域兩個域組成如圖1所示,其中資料域data存放該結點的資料域的值,指標域next存放該結點的後繼結點的位址資訊。2 單鏈表的標頭檔案 pragma once include include struct stunode 代表學生的節...
資料結構 單鏈表基本功能實現
總結 實驗目的 掌握單鏈表的儲存結構形式及其描述 掌握單鏈表的建立 查詢 插入和刪除操作 實驗內容 編寫函式,實現隨機產生或鍵盤輸入一組元素,建立乙個帶頭結點的單鏈表 無序 編寫函式,實現遍歷單鏈表。編寫函式,在非遞減有序單鏈表中插入乙個元素使鍊錶仍然有序。編寫函式,實現在非遞減有序鍊錶中刪除值為x...
資料結構單鏈表的幾個基本功能
剛剛接觸資料結構的我也是一臉懵逼的看待單鏈表,陣列向線性表的思想和 的突然轉換有點矇逼,尤其是為什麼要建立結構體,單鏈表的實現首先要建立乙個結構體,結構體的作用就是把乙個資料和下個資料的實體地址綁在一起形成單鏈表的乙個元素 資料 下個資料的位址 資料下個元素的位址 閒著沒事敲的 不是很完美,也沒有按...