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