起源
鏈表的出現,是因爲在許多業務場景中,需要進行增、刪操作,如果使用數組進行,要麼造成大量數據移動,要麼造成大量存儲空間浪費。因此鏈表應運而生。
鏈表是線性表的一種,它如同鎖鏈一般,每個結點包括兩個部分:一個是存儲數據元素的數據域(可能存儲多個不同類型的數據),另一個是存儲下一個結點地址的指針域。 非常便於增刪操作,當然也因爲是鏈式結構就造成了一般的鏈表並不具備像數組那樣直接通過數組下標隨機訪問的能力。
定義
typedef struct Node{
int data;
struct Node *next;
}LNode, *LinkList;
int main()
{
LNode point1 = {
1,NULL};
}
鏈表與數組的對比
數組:
int i;
int array[] = {
1,2,3};
for(i=0;i<sizeof(array)/sizeof(array[0]);i++){
printf("array[%d]=%d\n",i,array[i]);
}
:Wq
鏈表
LNode point1 = {
1,NULL};
LNode point2 = {
2,NULL};
LNode point3 = {
3,NULL};
point1.next = &point2;
point2.next = &point3;
printf("p1data=%d,p2data=%d,p3data=%d\n",point1.data,point1.next->data,point1.next->next->data);