c语言动态链表如何创建

   2025-03-15 4720
核心提示:动态链表的创建主要包括以下几个步骤:定义链表节点的数据结构:typedef struct Node{int data; // 节点存储的数据struct Node*

动态链表的创建主要包括以下几个步骤:

定义链表节点的数据结构:
typedef struct Node{int data;           // 节点存储的数据struct Node* next;  // 指向下一个节点的指针}Node;
创建链表的头节点:
Node* createList(){Node* head = (Node*)malloc(sizeof(Node));  // 为头节点分配内存空间if(head == NULL){printf("内存分配失败!\n");exit(1);}head->next = NULL;  // 头节点的next指针置空return head;}
插入节点到链表中:
void insertNode(Node* head, int data){Node* newNode = (Node*)malloc(sizeof(Node));  // 为新节点分配内存空间if(newNode == NULL){printf("内存分配失败!\n");exit(1);}newNode->data = data;  // 将数据赋值给新节点newNode->next = head->next;  // 使新节点的next指针指向原来的第一个节点head->next = newNode;  // 使头节点的next指针指向新节点}
打印链表的所有节点:
void printList(Node* head){Node* p = head->next;  // 从第一个节点开始遍历while(p != NULL){printf("%d ", p->data);  // 打印节点数据p = p->next;  // 指针移动到下一个节点}printf("\n");}

以下是一个完整的示例代码:

#include <stdio.h>#include <stdlib.h>typedef struct Node{int data;struct Node* next;}Node;Node* createList(){Node* head = (Node*)malloc(sizeof(Node));if(head == NULL){printf("内存分配失败!\n");exit(1);}head->next = NULL;return head;}void insertNode(Node* head, int data){Node* newNode = (Node*)malloc(sizeof(Node));if(newNode == NULL){printf("内存分配失败!\n");exit(1);}newNode->data = data;newNode->next = head->next;head->next = newNode;}void printList(Node* head){Node* p = head->next;while(p != NULL){printf("%d ", p->data);p = p->next;}printf("\n");}int main(){Node* head = createList();insertNode(head, 1);insertNode(head, 2);insertNode(head, 3);insertNode(head, 4);printList(head);return 0;}

运行结果为:

4 3 2 1

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言