什么是鏈表?當你用一個數(shù)組存放數(shù)據(jù)時就需要給它定義一個長度,如果定一個未知的數(shù)據(jù),你就需要擴大數(shù)組的范圍,有時如果由于某種特殊原因,數(shù)據(jù)增加,有需要重新修改程序,擴大數(shù)組的存儲范圍,鏈表就是一種更加簡便,不受限制的存儲方式,只需要根據(jù)分配內(nèi)存單元即可存儲的方式結(jié)構(gòu)。
處理鏈表需要哪些函數(shù)?
C提供了一些內(nèi)存管理函數(shù)這些內(nèi)存管理函數(shù)就可以為你分配內(nèi)存空間。

- malloc()函數(shù)
- calloc()函數(shù)
- free()函數(shù)
- reallo()函數(shù)

在執(zhí)行程序的過程中先一個一個開辟結(jié)點然后在每一個結(jié)點中輸入數(shù)據(jù)。由于程序是為了實現(xiàn)某一功能而設(shè)計的程序所以下面我將舉例來說明如何建立動態(tài)鏈表?
舉一個建立n個整數(shù)的單鏈表的例子,由于本人能力有限,不過建立一個動態(tài)鏈表還是很容易的。

建立一個n個整數(shù)的單鏈表,我用兩個函數(shù)來實現(xiàn)分別是creatlist函數(shù)和printlist函數(shù),它們的功能一個是創(chuàng)建,一個是輸出。
首先定義一個結(jié)構(gòu)體的類型,這個結(jié)構(gòu)體類型包括一個整形成員和一個指向結(jié)構(gòu)體類型的指針成員。然后我們在輸出函數(shù)中設(shè)三個指針變量,頭指針,指向當前節(jié)點的指針和指向當前節(jié)點的前一個節(jié)點的指針。

第一,用malloc()函數(shù)分配第一個結(jié)點,用head指向該結(jié)點,然后用r指向該結(jié)點。
第二,繼續(xù)用malloc()函數(shù)做第一個結(jié)點,s指向新結(jié)點,向s輸出數(shù)據(jù),然后用r的next指向s,r再指向s。
第三,重復(fù)操作,一直創(chuàng)建到第n個整數(shù)型的單鏈表為止。再用printlist函數(shù)輸出。就好啦!

具體代碼如下:
struct node
{
int date;
struct node*next;
};
struct node*creatlist(into n)
{
struct node*head ,*s,*r;
int i=0;
if((head=strucr node*)malloc(sizeof(struct node)))==NULL)
{
printf("error!");
return 0;
}
head_>next=NULL;
r=head;
for(i=1;i<n;i++)
{
if((s=(struct node*)malloc(sizeof(struct node)))==NULL)
}
}

希望看完的你動動小手點個關(guān)注,你的點贊就是對我最大的鼓勵。