p->next = q->next;p-next 原來是 q 現在變成 q->next
這個就是將 *q 從鏈中斷開
**:
/*單鏈表(含頭結點)
*/#include
#include
typedef
intelemtype;
typedef
struct
lnodelnode,*linklist;
linklist createlist1(elemtype a,
int n); //
頭插法建立單鏈表
linklist createlist2(elemtype a, int n); //
尾插法建立單鏈表
void outputlist(linklist l); //
輸出單鏈表全部元素
int length(linklist l); //
獲取單鏈表長度(不含頭結點)
int insertlnode(linklist l, int i, elemtype e); //
在第i個位置插入結點,即在第i-1個結點之後插入新結點
int deletenode(linklist l, int i, elemtype *e); //
刪除第i個結點,並用e返回其值
void
main();
elemtype e;
l = createlist2(a, 5
); outputlist(l);
insertlnode(l,
6, 6
); outputlist(l);
deletenode(l,
1, &e);
printf(
"%d\n
", e);
outputlist(l); }
linklist createlist1(elemtype a,
int n)
returnl;}
linklist createlist2(elemtype a,
int n)
r->next =null;
returnl;}
//輸出所有鍊錶的思路:
//1.讓頭節點的next 指向下乙個節點
//2. 做乙個迴圈 當超出時打斷迴圈 迴圈內的時候 p 指向下乙個 p 是 現在的節點 p=p-> next 節點會向下乙個移動
void outputlist(linklist l)
printf("\n
");}
int length(linklist l)
return
len;}
int insertlnode(linklist l, int i, elemtype e)
linklist p = l; //
p始終指向第i-1個結點
linklist s =null;
while (--i)
s = (lnode*)malloc(sizeof
(lnode));
s->data =e;
s->next = p->next;
p->next =s;
return1;
} int deletenode(linklist l, int i, elemtype *e)
linklist p = l; //
p指向待刪除結點的前驅結點
linklist q; //
q指向待刪除結點
while (--i)
q = p->next;
p->next = q->next;
*e = q->data;
free
(q);
return1;
}
資料結構 單鏈表 建立,節點刪除,節點插入
unix環境2011 02 03 cpp view plain copy include include include typedef struct student node node creat 建立鍊錶 s num x memcpy s name,stu name,16 p next s p ...
資料結構 刪除單鏈表偶數節點
本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中偶數值的結點刪除。鍊錶結點定義如下 struct listnode 函式介面定義 struct listnode createlist struct listnode deleteeven struct listnode head 函式cr...
資料結構 4 單鏈表查詢中間節點
單鏈表中間結點查詢 includeusing namespace std struct node node結構體,裡面有乙個node指標,用來指向下乙個node物件 node create int n 建立鍊錶,引數n表示結點的個數,返回型別是結點指標node p next null 建立完成後,p...