这段代码是用来创建一个链表的函数,名为 'creat',返回值为 'plist'(即链表的头指针)。

该函数通过使用 'getchar' 函数逐个读取输入的字符,直到遇到换行符为止。每读取一个字符,就创建一个新的节点('list' 类型),将字符存储在节点的 'data' 成员中。

如果是第一个节点(即 'head' 为空),则将 'head' 指向该节点;否则,将上一个节点的 'next' 指针指向当前节点。

最后,将最后一个节点的 'next' 指针置为 'NULL',表示链表的结束。

函数最后返回链表的头指针 'head'。

// 链表节点定义
typedef struct list {
  char data;
  struct list *next;
} list;

// 链表创建函数
plist creat(void) {
  plist head = NULL;
  list *p1, *p2;
  char a;

  a = getchar();
  while (a != '\n') {
    p1 = (plist)malloc(sizeof(list));
    p1->data = a;
    if (head == NULL) {
      head = p1;
    } else {
      p2->next = p1;
    }
    p2 = p1;
    a = getchar();
  }
  p2->next = NULL;
  return head;
}
C语言链表创建函数:plist creat(void)

原文地址: https://www.cveoy.top/t/topic/qb1B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录