使用C語言實現鍊錶的建立,刪除,查詢,插入

2021-09-17 23:54:20 字數 1582 閱讀 2408

重要的知識點介紹:

一:

1

|status listinsert_l

(linklist &l,

int i,elemtype e)

//在第i個位置插入e元素

有些函式引數前帶&號:

&號就是取位址,傳遞變數的指標,使形參得到乙個變數的位址,這時形參指標變數指向實參變數單元,如果我們對帶有&號的變數進行更改,那麼主函式中相應變數也會一起改變二:

typedef

struct lnode

lnode ,

*linklist;

在定義節點時,lnode *p ,linklist p的意思是一樣的

三:所有**如下

#include

#include

#define error 0

#define ok 1

typedef

int status;

typedef

int elemtype;

typedef

struct lnode

lnode ,

*linklist;

void

createlist_l

(linklist &l,

int n)

}void

outputlnode

(linklist l)

*/ l=l->next;

while

(l)//兩種初始化方法都可以

}status getelem_l

(linklist l,

int i,elemtype &e)

//查詢第i位置上的元素 if(

!p||j>j)

return error;

//沒有此元素

e = p->data;

return ok;

}status listinsert_l

(linklist &l,

int i,elemtype e)

//在第i個位置插入e元素 if(

!p||jreturn error;

s=(linklist)

malloc

(sizeof

(lnode));

s->data= e;

s->next= p->next;p->next = s;

return ok;}

status listdelete_l

(linklist &l,

int i,elemtype &e)

//刪除第i個元素,並用e返回其值 if(

!(p->next)

||j>i-1)

return error;

//刪除位置不合理

q=p->next ; p->next = q->next;

e = q->data;

free

(q);

return ok;

}int

main()

C語言實現鍊錶節點的刪除

1 刪除i某個位置的節點 2 判斷x值是否在鍊錶中,若存在則刪除該節點 核心 如下 刪除pos位置的節點 node deleteposelement node pnode,int pos phead pnode pmove pnode 單獨考慮刪除第乙個節點 if pos 1 while pmove...

C語言實現順序鍊錶的建立和刪除插入元素

include include define len sizeof struct student 順序鍊錶的建立 刪除 插入操作 struct student int n struct student creat else p2 p1 p1 struct student malloc len pri...

建立雙向鍊錶的演算法 C語言實現

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個節點包含兩個指標,分別指向直接後繼和直接前驅 頭節點的前驅指空,尾節點的後繼指空 所以,從雙向鍊錶中的任意乙個非前驅非後繼節點開始,都能很方便地訪問它的前驅和後繼節點。實際上如果熟練掌握了單向鍊錶的基本操作,雙向鍊錶的建立只是每次新建好乙個節點後掛鏈的時候多...