注意: linklist l 於 linklist &l 的區別,前者只能改變指標指向的內容,後者同時還可以修改指標本身,即指標內部
#include#include#includetypedef int elemtype;
typedef int status;
//定義結構體
typedef struct lnode
lnode, *linklist;
//建立單鏈表
linklist createlist(int n)
return l;
}
//查詢第i個元素並賦給e
status getelem_l(linklist &l, int i, elemtype &e)
if (!p || j > i)
return 0;
e = p->data;
return 1;
}
//在第 i 個位置插入 e
status insertlist(linklist &l, int i, elemtype e)
if (!p || j > i - 1)
return 0;
linklist s = (linklist)malloc(sizeof(lnode));
s->data = e;
s->next = p->next;
p->next = s;
return 1;
}
//刪除第 i 個位置的元素,並將值儲存於 e
status deletelist(linklist &l, int i, elemtype &e)
if (!(p->next) || j > i - 1)
return 0;
linklist q = p->next;
p->next = q->next;
e = q->data;
free(q); //注意一定要釋放記憶體空間
return 1;
}
//輸出單鏈表
void output(linklist l)
printf("\n");
}
//主函式
int main()
C語言單鏈表 增 刪 改 查
鍊錶是一種常見的基礎資料結構,結構體指標在這裡得到了充分的利用。鍊錶可以動態的進行儲存分配,也就是說,鍊錶是乙個功能極為強大的陣列,他可以在節點中定義多種資料型別,還可以根據需要隨意增添,刪除,插入節點。鍊錶都有乙個頭指標,一般以head來表示,存放的是乙個位址。鍊錶中的節點分為兩類,頭結點和一般節...
Java實現單鏈表資料結構的增刪改查
package 鍊錶 1 單鏈表的插入 刪除 查詢操作 2 鍊錶中儲存的是int型別的資料 public class singlylinkedlist return p 通過index查詢 public node findbyindex int index return p 無頭部節點 哨兵 表頭部...
單鏈表增刪改查
include include include include using namespace std struct node node int x,node next null 帶參初始化 建立煉表頭結點,新增引用因為要改變指標的位址指向 void createlink node head 新增鍊...