單鏈表是由結(jié)構(gòu)體叹放、指針相結(jié)合的一種數(shù)據(jù)格式,
看個簡單的結(jié)構(gòu)體,格式如下:
struct node{
int data;
node * next;
}
這個結(jié)構(gòu)體只存放了一個int的數(shù)據(jù)類型甘穿,當(dāng)然我們可以存放多個類型
next一般稱為指針,存放著下個節(jié)點的位置
一個簡單的鏈表梢杭,如下圖所示
因為鏈表是動態(tài)分配內(nèi)存的温兼,所以當(dāng)要建立節(jié)點的時候,需要要系統(tǒng)申請動態(tài)分配空間武契。
如下格式進行申請
(struct node *) malloc(sizeof(struct node))
下面是簡單的鏈表建立源碼
#include<stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *next;
};
int main(){
struct node *p,*p1,*head;
head = p = (struct node *) malloc(sizeof(struct node));//創(chuàng)建父節(jié)點
scanf("%d",&p->data);
while(p->data!=0){
p1 = p;
p = (struct node *) malloc(sizeof(struct node));
scanf("%d",&p->data);
p1->next = p;
}
p->next = NULL;
p = head;
printf("鏈表數(shù)據(jù):");
while(p->next!=NULL){
printf("%d",p->data);
p = p->next;
}
printf("%d\n",p->data);
}