定義鍊錶結點結構體
typedef
struct node mylinkedlist, node;
建立乙個鍊錶,即建立乙個頭結點
mylinkedlist*
mylinkedlistcreate()
在鍊錶首元結點之前新增乙個結點,作為新的首元結點
void
mylinkedlistaddathead
(mylinkedlist* obj,
int val)
在鍊錶尾結點之後新增乙個結點,作為新的尾結點
void
mylinkedlistaddattail
(mylinkedlist* obj,
int val)
在指定位置插入乙個結點,值為val
int
mylinkedlistaddatindex
(mylinkedlist* obj,
int index,
int val)if(
!p || j > index)
node* newnode =
(node*
)malloc
(sizeof
(node));
// 生成新結點
newnode->val = val;
newnode->next = p->next;
p->next = newnode;
return0;
}
刪除指定位置的結點
int
mylinkedlistdeleteatindex
(mylinkedlist* obj,
int index)if(
!(p->next)
|| j > index)
node* q = p->next;
p->next = q->next;
// 刪除並釋放結點
val = q->val;
free
(q);
return val;
}
獲取索引號為index的節點的數值,如果索引號錯誤則返回-1
int
mylinkedlistget
(mylinkedlist* obj,
int index)if(
!p || j>index)
return p->val;
}
釋放鍊錶
void
mylinkedlistfree
(mylinkedlist* obj)
free
(obj)
;}
列印鍊錶
void
showall
(mylinkedlist* obj)
printf
("\n");
}
主函式
#include
#include
intmain()
showall
(obj)
;printf
("首元結點前插入:");
mylinkedlistaddathead
(obj,1)
;showall
(obj)
;printf
("尾元結點後插入:");
mylinkedlistaddattail
(obj,36)
;showall
(obj)
;printf
("在指定座標插入:");
mylinkedlistaddatindex
(obj,2,
6);showall
(obj)
;printf
("在指定座標刪除:");
mylinkedlistdeleteatindex
(obj,3)
;showall
(obj)
;printf
("獲取指定座標數值:%d\n"
單鏈表的基本操作(C語言實現)
單鏈表的初始化,建立,插入,查詢,刪除。include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist linkedlistinit 單鏈表的建立1,頭插法建立單鏈表...
C語言實現單鏈表的基本操作
listnode.h ifndef listnode h define listnode h include stdio.h include assert.h include stdlib.h typedef int datatype typedef unsigned int size t type...
單鏈表 的基本操作 c語言實現
鍊錶的基本操作 c語言實現 執行環境 dev c 5.11 以下為原始碼,如有不正確的地方歡迎指正!include include define false 0 define true 1 typedef int datatype typedef struct nodelinklist linkli...