我可以在c中创建这种链表吗



我只是在学习链表,我写了以下代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct linkedList
{
    char name[100];
    struct linkedList *next;
};
struct linkedList *head = NULL;

void main()
{
    struct linkedList *node1,*node2;
        node1 = (struct linkedList*)malloc(sizeof(struct linkedList));
        strcpy(node1->name, "aaa");
        node1->next = NULL;
        head = node1;
        node2 = (struct linkedList*)malloc(sizeof(struct linkedList));
        strcpy(node2->name, "bbb");
        node1->next = node2;
        node2->next = NULL;
}

我不明白这是一个有效的链表吗
我必须创建相同的"节点"名称吗?或者我可以使用"node1"node2"
在我看来,我写的等于:
head---->|"aaa"|addr_to_node2|---->|"bbb"|NULL |
这是真的吗
如何打印此链接列表?

谢谢!

以下是如何打印链接列表

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct linkedList
{
  char name[100];
  struct linkedList *next;
};
struct linkedList *head = NULL;

int main()
{
    struct linkedList *node1,*node2;
    node1 = (struct linkedList*)malloc(sizeof(struct linkedList));
    strcpy(node1->name, "aaa");
    node1->next = NULL;
    head = node1;
    node2 = (struct linkedList*)malloc(sizeof(struct linkedList));
    strcpy(node2->name, "bbb");
    node1->next = node2;
    node2->next = NULL;
    while(node1!=NULL)
    {
        printf("%sn",node1->name);
        node1 = node1->next;
    }
    return 0;
 }

它是有效的。

我必须创建相同的"节点"名称吗?或者我可以使用"node1"node2"?

您可以使用任何名称,因为它是一个常规变量。

实际上,您创建的结构不是链表,而是链表节点。一个节点包含信息和指向下一个节点的指针,而列表本身应该包含指向头节点和尾节点的指针(用于快速插入)此外,请考虑添加用于在此列表中添加和删除项目的函数。

相关内容

  • 没有找到相关文章