#include <stdio.h> #include <stdlib.h>

// 定义链表节点结构体 typedef struct Node { int data; struct Node *next; } Node;

// 创建链表函数,返回链表头指针 Node *createLinkedList(int n) { Node *head, p, q; // 给头节点分配内存空间 head = (Node)malloc(sizeof(Node)); // 初始化头节点的next指针为NULL head->next = NULL; // q指向头节点,作为链表的尾部 q = head; // 循环n次,创建n个节点 for (int i = 0; i < n; i++) { // 给p节点分配内存空间 p = (Node)malloc(sizeof(Node)); // 输入节点数据 printf('请输入第%d个节点的数据:', i + 1); scanf('%d', &p->data); // 将p节点插入到链表尾部 q->next = p; q = p; } // 链表建立完成,返回头节点指针 return head; }

// 显示链表函数,输入链表头指针 void displayLinkedList(Node *head) { int count = 0; Node *p = head->next; // 循环遍历链表,统计节点数量并打印节点数据 while (p) { printf('%d ', p->data); count++; p = p->next; } printf(' 链表中共有%d个节点 ', count); }

// 主函数 int main() { int n; printf('请输入链表中元素的个数:'); scanf('%d', &n); // 创建链表 Node *head = createLinkedList(n); // 显示链表 displayLinkedList(head); return 0; }

C语言实现链表创建和显示 - 完整代码及注释

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

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