首頁>Club>
14
回覆列表
  • 1 # 使用者4412311999012

    首先,第一行的typedef struct LNode中的LNode不可以去掉 其次,第三行的struct LNode *next中的struct LNode定義了next的型別也是連結串列型別,是遞迴定義。 最後,第四行LNode, *LinkList中LNode是結構體別名,其作用是在分配結點用在sizeof(LNode)中,比較方便,可以刪掉,在結構體型別時用struct LNode代替

  • 2 # 使用者1042898638258

    就是LNode,* LinkList都等價struct Lnode了,你就可以LinkList H;來等義一個H了,H是一個指向結構體型別的指標。LNode struct1;struct1就是一個結構體的變數。

    如果沒有typedef

    LNode,* LinkList就是定義了一個變數(一個節點)和一個指向該結構體型別變數的指標。LNode我一般都不用的,有指標就夠了,在程式設計領域,指標是王道,不會靈活利用指標,程式設計很費勁的。

    struct{ 你在這裡沒有定義結構體型別名

    elemtype data;

    struct Lnode * next;

    } LNode1; 所以只能在這裡要接著定義變數:LNode1 (LNode不好)

    struct Lnode { 定義了結構體型別名

    elemtype data;

    struct Lnode * next;

    }; 可以在這裡定義變數LNode1,也可以在函式別的地方定義變數LNode1

    typedef struct Lnode {

    elemtype data;

    struct Lnode * next;

    } 只是定義了一個節點。相當於火車的一個車廂。那怎麼才能成為一個連結串列呢?就好比你有很多節車廂,你肯定要連線起來才能成為一輛火車。在結構體是怎樣連線起來的呢?

    定義兩個節點:LinkList p1; LinkList p2;

    程式碼: p2=p1->next;

    這樣就把p2連線在p1的後面了,注意:節點中的next變數是一個struct類的指標,所以組成連結串列基本都要用指標。

    所以還要定義一個指標型別的LinkList。

    我的回答能看的明白嗎?不懂的話,說說,我時刻關注的。

  • 中秋節和大豐收的關聯?
  • 描寫“夏天雷雨來得快,去得也快”的詩句有哪些?