117.info
人生若只如初见

c语言动态链表如何创建

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

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

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

#include 
#include 
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 = https://www.yisu.com/ask/data;>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

未经允许不得转载 » 本文链接:https://www.117.info/ask/fef32AzsLBgVTB1c.html

推荐文章

  • c语言二维数组求和的方法是什么

    要求解一个二维数组的和,可以使用两个嵌套的for循环来遍历数组的每个元素,并将每个元素累加到一个变量中。下面是一个示例代码:
    #include #define ROWS 3...

  • c语言两个二维数组相加的方法是什么

    在C语言中,两个二维数组相加的方法是逐个元素相加,然后将结果保存到一个新的二维数组中。以下是一个示例代码:
    #include // 定义数组的行列数
    #defi...

  • c语言二维数组输入的方法是什么

    在C语言中,可以使用双层循环来输入二维数组。以下是一种常用的方法:
    #include int main() {
    int rows, cols;
    printf("Enter the number of row...

  • C语言动态爱心代码怎么写

    以下是一个使用C语言编写的动态爱心代码示例:
    #include #include int main() {
    const char* heart = " ***** \n ********* \n ************* \n*****...

  • c语言单链表如何创建

    创建单链表的基本思路如下: 定义一个结构体用来表示链表中的节点,结构体中包含一个数据域用来存储节点的值,还包含一个指针域用来指向下一个节点。 struct Lis...

  • win10开机很慢如何解决

    Win10开机很慢的原因可能有很多,可以尝试以下方法解决: 清理启动项:打开任务管理器,点击“启动”选项卡,禁用不必要的启动项。 关闭开机自启动的程序:按下W...

  • win11计划任务定时关机怎么设置

    在Windows 11中,您可以通过以下步骤设置定时关机的计划任务: 打开控制面板。您可以在“开始”菜单中搜索“控制面板”并打开它。 在控制面板中,选择“系统和安...

  • c语言怎么创建链表并输入数据

    要创建链表并输入数据,可以按照以下步骤进行: 首先定义一个节点结构体,包含一个数据域和一个指向下一个节点的指针域。例如: struct Node {
    int data;