單鏈表的基本操作

2021-10-01 01:38:22 字數 1972 閱讀 4975

本博文僅記錄學習使用,您可以在這裡看我的詳細筆記

#include

#include

// typedef struct nodenode;

// 在學習 c 語言的時候,我們直到 struct 後面的 node 是可以

// 省略的,但是這裡必須加上,因為在結構體內部定義了後驅尾

// 該結構,這個時候,在執行**的時候,最後的末尾的 node 沒有

// 執行到,會報錯

typedef

int elemtype;

typedef

int status;

typedef

struct node

node;

// 就是把 struct node * 定義成了新型別 linklist。

// 這個型別是乙個結構體的指標。

typedef

struct node *linklist;

// 單鏈表的建立(頭插法

//void createlisthead(linklist *l,int n)

////}

// 單鏈表的建立(尾插法)

// n 表示插入的個數

void

createlisttail

(linklist *l,

int n)

r->next =

null

;printf

("建立成功\n");

}// 單鏈表的整表刪除

status clearlist

(linklist *l)

(*l)

->next =

null

;printf

("刪除成功\n");

return1;

}// 單鏈表的讀取

// i 表示要讀取的位置序號

// e 接收讀取值的變數

status getelem

(linklist l,

int i,elemtype *e)if(

!p||j>i)

return0;

*e = p->data;

return1;

}// 插入

// i 表示要插入的位置

// e 表示要插入的值

status listinsert

(linklist *l,

int i,elemtype e)if(

!p || j

return0;

s =(linklist)

malloc

(sizeof

(node));

// 系統生成 s 作為被插入的結點

s->data = e;

// 給 s 賦值

s->next = p->next;

p->next = s;

return1;

}// 刪除

// i 表示要刪除的位置

// e 表示返回的被刪除的值

status listdelete

(linklist *l,

int i,elemtype *e)if(

!(p->next)

|| j>i)

return0;

q = p->next;

p->next = q->next;

*e = q->data;

// free 用於釋放乙個記憶體位址

free

(q);

return1;

}// 顯示當前鍊錶所有元素

單鏈表基本操作

include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...

單鏈表基本操作

單鏈表的初始化,建立,插入,查詢,刪除。author wang yong date 2010.8.19 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist...

單鏈表基本操作

include using namespace std define namelenth 20 define ok 0 define error 1 typedef struct flagnode node 生成結點 inline node newnode 銷毀化煉表 void destroylin...