Reignsky_ 2023-05-12 19:34 采纳率: 66.7%
浏览 19
已结题

为什么数据结构链表中的每个结点的类型是指向结构体变量的指针类型

也就是说为什么创建一个节点的时候是LNode* p,而为什么不可以是LNode p 这样子p的指针域不是也存了下一个节点的位置吗?
求解答

  • 写回答

3条回答 默认 最新

  • Wanto-Fly 2023-05-12 19:41
    关注

    在链表中,每个节点的指针指向的是与该链表结构一样的节点。链表定义的结构体,就是描述链表结构中节点的组成。定义的指针呢,是种嵌套,指向结构体本身。而结构体是一种数据类型,而不是具体的一个变量。所以这里可以理解为定义的指针指向的是,该链表的某个节点。

    #include <stdio.h>
    #include <stdlib.h>
    
    struct node {
        int data;
        struct node *next;
    };
    
    int main () {
        // 创建 第一个节点
        struct node *head = (struct node*)malloc (sizeof (struct node));
        head->data = 1;
        head->next = NULL;
    
        // 创建 第二个节点
        struct node *second = (struct node*)malloc (sizeof (struct node));
        second->data = 2;
        second->next = NULL;
    
        // 将第二个节点链接到第一个节点的后面
        head->next = second;
    
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 创建了问题 5月12日