建立乙個工程,在其中新增 list.h 標頭檔案,list.cpp原始檔和main.cpp原始檔。
標頭檔案list.h中進行資料型別抽象(adt),宣告了乙個結構體和對應的操作,**如下:
#ifndef _list_h_
#define _list_h_
typedef struct list
list;
/*函式宣告*/
list
* initlist();
list
* initnode(int d);
void removelist(list
*head);
list
*insertlist(list
*head, int i,int x);
list
*deletenode(list
*head,int i);
void displaylist(list
*head);
void getlistlength(list
*head);
#endif
// !_list_h_
再實現對應的操作,即list.cpp,**如下:
#include
#include
#include
#include
"list.h"
/*初始化鍊錶*/
list
*initlist()
/*新建節點*/
list
* initnode(int d)
/*銷毀鍊錶*/
void removelist(list
*head)
printf("鍊錶已銷毀\n");
}/*插入節點*/
list
*insertlist(list
*head,int i,int x) //i為鍊錶第i個結點,x為要插入的資料
if (q ==
null
|| j > i -
1)
else
return head;
}/*刪除鍊錶中的節點*/
list
*deletenode(list
*head, int i) //i為鍊錶第i個結點
if (p ==
null
|| j > i -
1)
else
return head;
}/*列印鍊錶*/
void displaylist(list
*head)
printf("\n");
}/*獲取鍊錶長度*/
void getlistlength(list
*head)
printf("鍊錶的當前長度為:%d\n", j);
}
最後就是在main函式裡測試了,**如下:
#include
#include"list.h"
int main(void)
; //定義乙個陣列,將其元素作為結點的資料
tail = head = initlist(); //新建乙個帶頭節點的鍊錶
for (int i = 0; i < 7; i++)
displaylist(head);
insertlist(head,3,25); //在3號位插入25這個元素
displaylist(head);
deletenode(head,2); //刪除2號位的元素
displaylist(head);
getlistlength(head); //列印鍊錶當前長度
removelist(head); //銷毀鍊錶
return
0;}
寫得比較拙劣,還請多多指教 單鏈表的建立 插入 刪除
單鏈表的初始化 建立 插入 查詢 刪除 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist linkedlistinit l next null 將nex...
單鏈表的建立 插入 刪除
建立乙個節點 typedef struct node link 建立鍊錶 首先head 這個變數指向第乙個節點,然後讓temp1 指向每次建立的knot1節點。簡單來說就是 knot1 開闢節點,temp1儲存每次開闢的節點。num 節點個數 link createlist link head,in...
單鏈表的建立, 刪除, 插入, 輸出
include include typedef struct node node,linklist int node num 0 void creat node head 建立鍊錶 void print node head 輸出鍊錶 node query node head,int value 查詢...