C語言實現單鏈表的基本操作

2021-10-04 16:07:32 字數 2337 閱讀 8949

定義鍊錶結點結構體

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...