每乙個注釋均為除錯語句
實現了鍊錶相關的操作
如有問題,請指出,謝謝!
#include
#include
typedef
struct nodelnode,
*linklist;
intinit()
//採用頭插法建立鍊錶,如果使用頭插法建立鍊錶,那麼輸出與輸入是倒序的
lnode*
creat()
else
}return l;
//返回頭結點位置
}//採用尾插法建立鍊錶
lnode*
creat1()
else
}//尾插法插入完之後要置空
return l;
}//求鍊錶長度
intlength
(linklist l)
printf
("count=%d\n"
,count-1)
;//從頭結點開始計算的,因此需要count-1 ;或者一開始就將l=l->next;
return count-1;
}//列印鍊錶
void
(linklist l)
}//按值查詢表節點
linklist locate
(linklist l)
else
break;}
return l;
}//按序號進行查詢
linklist get
(linklist l)
printf
("找到該序號對於的元素:%d\n"
,p->data)
;return p;
}//插入某個結點
lnode*
insert
(linklist l)
else
//第三步找到插入位置之後,進行插入。
s=(linklist)
malloc
(sizeof
(lnode));
s->next=l->next;
l->next=s;
s->data=e;
printf
("插入之後的個數為:");
length
(p);
}return p;
//返回頭結點的位置
}//刪除某個結點
linklist del
(linklist l)
while
(p!=
null
&&k// while(s!=null&&j//
// p->next=s->next;
s=p->next;
p->next=s->next;
free
(s);
return l;
} linklist des
(linklist l)
//摧毀整個單鏈表的時候,要逐個釋放結點空間
printf
("摧毀成功咯\n");
l=null
;printf
("%d\n"
,l);
//除錯
return l;
}int
main()
}// int count=0,i;
//p=creat1();
//p=p->next;
// a=p;
// int k;
// k=length(p);
// print(p);
// insert(p);
// print(p) ;
// locate(p);
// get(p);
// del(p);
// print(p) ;
//此處我將列印鍊錶和將鍊錶求長度轉化成了函式,簡化main函式體。
// while(p!=null)
// // printf("count=%d\n",count);
//注意,我在這裡犯錯:我沿用while(p!=null)想列印鍊錶,結果剛剛用count去計數的時候,指標p已經走到末尾了,然後你去判斷p!=null得到false,直接跳出;
// printf("建立好的鍊錶為:");
// while(a!=null)
//
}
C 語言單鏈表的實現(簡單實現)
簡單的實現單鏈表的增刪遍歷操作,還有一些功能需要實現。我感覺難理解的時候畫圖來搞清楚邏輯,先畫個圖比劃就行。author gong single linked list 增 刪 遍歷 include include 從新定義節點的資料域資料型別,以後好修改具體的鍊錶 typedef int data...
用C語言簡單實現單鏈表
typedef struct node node,list 單鏈表的初始化 void initlist list plist plist next null 單鏈表的頭插法 該方法從乙個空鍊錶開始,讀取元素val,生成新的結點,將讀取的資料放到新結點的資料域中,然後將該新結點插入到當前鍊錶的表頭上。...
1 單鏈表 c實現 詳細注釋
include include include 建立單鏈表的成員 其實就是結點 link p p就是乙個結點 typedef struct link link link 為這個結構體的別名 初始化鍊錶 link initlink return p 鍊錶的基本操作 對鍊錶進行插入 link inser...