117.info
人生若只如初见

c语言中的链表怎么使用

在C语言中使用链表,需要定义一个结构体来表示链表的节点,每个节点包含一个数据域和一个指针域。然后通过操作指针来实现链表的各种操作。

以下是一个示例代码,展示了如何创建一个链表、插入节点、删除节点以及遍历链表等操作:

#include 
#include 

// 定义链表节点
typedef struct Node {
    int data;           // 数据域
    struct Node* next;  // 指针域
} Node;

// 创建新节点
Node* createNode(int data) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->data = https://www.yisu.com/ask/data;>next = NULL;
    return newNode;
}

// 插入节点到链表尾部
void insertNode(Node** head, int data) {
    Node* newNode = createNode(data);
    if (*head == NULL) {
        *head = newNode;
    } else {
        Node* curr = *head;
        while (curr->next != NULL) {
            curr = curr->next;
        }
        curr->next = newNode;
    }
}

// 删除节点
void deleteNode(Node** head, int data) {
    Node* curr = *head;
    Node* prev = NULL;
    while (curr != NULL && curr->data != data) {
        prev = curr;
        curr = curr->next;
    }
    if (curr == NULL) {
        printf("节点 %d 不存在\n", data);
        return;
    }
    if (prev == NULL) {
        *head = curr->next;
    } else {
        prev->next = curr->next;
    }
    free(curr);
    printf("节点 %d 已删除\n", data);
}

// 遍历链表
void printList(Node* head) {
    if (head == NULL) {
        printf("链表为空\n");
        return;
    }
    Node* curr = head;
    while (curr != NULL) {
        printf("%d ", curr->data);
        curr = curr->next;
    }
    printf("\n");
}

int main() {
    Node* head = NULL;

    // 插入节点到链表
    insertNode(&head, 1);
    insertNode(&head, 2);
    insertNode(&head, 3);

    // 遍历链表
    printList(head);  // 输出:1 2 3

    // 删除节点
    deleteNode(&head, 2);
    printList(head);  // 输出:1 3

    return 0;
}

上述代码定义了一个链表节点的结构体Node,并实现了创建节点、插入节点、删除节点以及遍历链表等操作。在main函数中,创建了一个链表并进行了相应的操作,最终输出了链表的内容。

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

推荐文章

  • C语言怎么连续输入数据

    在C语言中,可以使用循环结构来连续输入数据。一种常见的方式是使用while循环,如下所示:
    #include int main() { int num; while (1) { printf("请输入一个...

  • C语言转义字符如何使用

    C语言中的转义字符是一些特殊的字符序列,它们用来表示一些特殊的含义。以下是一些常用的转义字符及其用法: \n:换行符
    用法:printf(“Hello\nWorld”); ...

  • C语言框架怎么写

    C语言是一种结构化的编程语言,它本身并没有内置的框架。但是,你可以使用一些常用的C语言库和框架来帮助你开发应用程序。下面是一个简单的C语言框架示例:

  • c语言转义字符如何判断是否正确

    在C语言中,转义字符以反斜杠(\)开头,后面跟一个字符或者一组字符。要判断一个转义字符是否正确,可以使用以下方法: 检查反斜杠后面的字符是否是合法的转义字...

  • mysql中providername的作用是什么

    在MySQL中,providername是一个属性,用于指定用于连接到数据库的提供程序的名称。它通常用于指定使用的数据库引擎,例如MySQL、MariaDB等。
    通过提供程序的...

  • c语言init函数怎么定义和使用

    在C语言中,init函数通常用于初始化某个模块或变量。它的定义和使用步骤如下: 定义init函数:在代码中定义一个函数,函数名为init,无返回值(void)和参数(void)...

  • python怎么读取整个txt文件

    你可以使用open()函数来打开一个txt文件,并使用read()方法来读取整个文件内容。下面是一个简单的例子:
    # 打开txt文件
    file = open("example.txt", "...

  • openstack查看服务的命令是什么

    在 OpenStack 中,可以使用 `openstack` 命令行工具来查看服务。以下是一些常用的命令示例:查看所有的服务: openstack service list查看指定服务的详细信息(例...