**:
#include
#include
#include
using namespace std;
//單鏈表結構體
typedef struct _linknode _linknode;
//首節點
bool linkinit(_linknode *&l)
//前插法l->data = -1;
l->next = null;
bool linkinsert_front(_linknode *&l, const int &data)
//後插法_linknode *node = new _linknode;
if (!node)
node->data = data;
node->next = l->next;
l->next = node;
return true;
bool linkinsert_back(_linknode *&l, const int &data)
//任意位置插入_linknode *last = l;
while (last->next)
_linknode *node = new _linknode;
if (!node)
node->data = data;
node->next = null;
last->next = node;
return true;
//i:代表節點
bool linkinsert(_linknode *&l, const int &i, const int &data)
//通過節點查詢資料_linknode *p = l;
for (int j = 0; p && j < i - 1; j++)
if (!p)
_linknode *node = new _linknode;
if (!node)
node->data = data;
node->next = p->next;
p->next = node;
return true;
bool link_getelem(_linknode *&l, const int &i, int &data)
_linknode *p = l->next;
data = 0;
for (int j = 0; p && j < i - 1; j++)
if (!p)
data = p->data;
return true;
//通過資料查詢節點
bool link_getnode(_linknode *&l, const int &data, int &i)
//刪除節點_linknode *p = l->next;
int index = 1;
//節點先初始化1
i = 1;
while (p && p->data != data)
if (!p)
i = index;
return true;
bool linkdelete(_linknode *&l, const int &i)
//歸還空間//判斷的上乙個節點
_linknode *p = l;
//刪除的節點
_linknode *q = null;
for (int j = 0; p->next && j < i - 1; j++)
if (!p->next)
//刪除的節點
q = p->next;
p->next = q->next;
delete q;
return true;
bool linkdestory(_linknode *&l)
//輸出節點string line(45, '-');
_linknode *p = l;
//最後l也為nulla
cout << line << "歸還空間!" << line << endl << endl;
while (p)
bool linkprint(_linknode *&l)
//主函式_linknode *p = l->next;
printf("\n所有元素內容為:");
while (p)
cout << endl << endl;
int main(void)
else
}//輸出
linkprint(l);
printf("《後插法》 請輸入需要新增的節點個數:");
scanf_s("%d", &n);
for (int i = 0; i < n; i++)
else
}//輸出
linkprint(l);
printf("《任意位置插法》 請輸入需要插入的節點 和 節點資料");
scanf_s("%d%d", &n,&data);
if (linkinsert(l, n, data))
else
//輸出
linkprint(l);
printf("《通過節點查詢資料》 請輸入需要查詢的節點:");
scanf_s("%d", &n);
if (link_getelem(l, n, data))
else
//輸出
linkprint(l);
printf("《通過資料查詢節點》 請輸入需要查詢的資料:");
scanf_s("%d", &data);
if (link_getnode(l, data, n))
else
//輸出
linkprint(l);
printf("《刪除節點》 請輸入需要刪除的節點:");
scanf_s("%d", &n);
if (linkdelete(l, n))
else
//輸出
linkprint(l);
//歸還空間
linkdestory(l);
system("pause");
return 0;
單鏈表的c 實現
node類標頭檔案 ifndef node h define node h include include using namespace std class node endif node類cpp include node.h using namespace std 過載 運算子 ostream ...
單鏈表的C 實現
include using namespace std struct node class list void insertlist int adata,int bdata void deletelist int adata void outputlist node gethead void lis...
C 單鏈表的實現
include include include include using namespace std typedef struct student node node create 建立單鏈表 else cycle 0 head head next p next null coutreturn h...