C语言 它是一个链表实现



我只是在C中学习指针,并实现了一个具有3个元素的单链表。这是正确的方法吗?即使不是,我写的代码是否代表链表?

#include <stdio.h>
struct node
{
    int a;
    struct node *link;
};
int main()
{
    struct node first;
    struct node second;
    struct node third;
    first.a=1;
    first.link=&second;
    first.link->a=2;
    first.link->link=&third;
    first.link->link->a=3;
    printf("n%d",first.a);
    printf("n%d",second.a);
    printf("n%d",third.a);
    return 0;
}

您正确编写的代码构建了一个单链表,但不是单链表数据结构的一般实现。因此,可以应用于链表的操作(例如,insert在给定位置上的一个元素,append在列表末尾的一个元素或count在列表中的元素数量)被抽象出来并移动到实用函数中。

因此,作为下一步,尝试实现void append(struct node* head, int value)函数,给定指向列表头部的指针,将具有给定值的新节点附加到列表末尾。然后,尝试使用这个函数来表示列表的构造。

#include <stdio.h>
 struct node
{
    int a;
    struct node *link;
};  
int main()
{
    struct node first;
    struct node second;
    struct node third;
    first.a=1;
    first.link=&second;
    first.link->a = 2;
    second.link=&third;
    second.link->a=3;
    printf("n%d",first.a);
    printf("n%d",second.a);
    printf("n%d",third.a);
    return 0;
}

//每个结构体中的节点需要指向下一个结构体,您的代码更改了first的原始目的地。从第二点链接到第三点,它不能同时指向两个,第二个包含指向第三个的指针,第三个包含指向第四个的指针....

相关内容

  • 没有找到相关文章

最新更新