C語言基礎-鏈表(一)起源、定義、鏈表與數組的區別

起源

鏈表的出現,是因爲在許多業務場景中,需要進行增、刪操作,如果使用數組進行,要麼造成大量數據移動,要麼造成大量存儲空間浪費。因此鏈表應運而生。

鏈表是線性表的一種,它如同鎖鏈一般,每個結點包括兩個部分:一個是存儲數據元素的數據域(可能存儲多個不同類型的數據),另一個是存儲下一個結點地址的指針域。 非常便於增刪操作,當然也因爲是鏈式結構就造成了一般的鏈表並不具備像數組那樣直接通過數組下標隨機訪問的能力。

定義

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);

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章