广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c语言单链表反转代码怎么写
  • 727
分享到

c语言单链表反转代码怎么写

c语言 2023-10-26 20:10:48 727人浏览 泡泡鱼
摘要

以下是一个简单的C语言单链表反转代码示例: #include #include // 定义链表节点结构体 typedef st

以下是一个简单的C语言链表反转代码示例:

#include 
#include 

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

// 添加节点到链表尾部
void append(Node** head_ref, int new_data) {
    // 创建新节点
    Node* new_node = (Node*)malloc(sizeof(Node));
    new_node->data = new_data;
    new_node->next = NULL;

    // 如果链表为空,则将新节点设为头节点
    if (*head_ref == NULL) {
        *head_ref = new_node;
        return;
    }

    // 找到链表的最后一个节点
    Node* last_node = *head_ref;
    while (last_node->next != NULL) {
        last_node = last_node->next;
    }

    // 将新节点连接到链表的最后
    last_node->next = new_node;
}

// 反转链表
void reverse(Node** head_ref) {
    Node* prev_node = NULL;
    Node* current_node = *head_ref;
    Node* next_node = NULL;

    while (current_node != NULL) {
        // 保存下一个节点的指针
        next_node = current_node->next;

        // 反转当前节点的指针
        current_node->next = prev_node;

        // 移动指针
        prev_node = current_node;
        current_node = next_node;
    }

    // 将头节点指向反转后的链表
    *head_ref = prev_node;
}

// 打印链表
void printList(Node* node) {
    while (node != NULL) {
        printf("%d ", node->data);
        node = node->next;
    }
    printf("\n");
}

int main() {
    node* head = NULL;

    // 添加节点到链表
    append(&head, 1);
    append(&head, 2);
    append(&head, 3);
    append(&head, 4);

    // 打印原链表
    printf("Original list: ");
    printList(head);

    // 反转链表
    reverse(&head);

    // 打印反转后的链表
    printf("Reversed list: ");
    printList(head);

    return 0;
}

这段代码首先定义了一个链表节点结构体 `Node`,包含一个整型数据和一个指向下一个节点的指针。然后,通过 `append` 函数将节点添加到链表的尾部。接着,通过 `reverse` 函数将链表反转。最后,通过 `printList` 函数打印链表。在 `main` 函数中,创建链表并进行测试

--结束END--

本文标题: c语言单链表反转代码怎么写

本文链接: https://www.lsjlt.com/news/470501.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言单链表反转代码怎么写
    以下是一个简单的C语言单链表反转代码示例: #include #include // 定义链表节点结构体 typedef st...
    99+
    2023-10-26
    c语言
  • C语言责任链模式代码怎么写
    这篇文章主要讲解了“C语言责任链模式代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言责任链模式代码怎么写”吧!介绍:责任链模式是一种行为模式,它可以允许你将请求沿着处理者链进行...
    99+
    2023-06-22
  • C语言中单链表怎么用
    这篇文章将为大家详细讲解有关C语言中单链表怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、单链表概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序...
    99+
    2023-06-29
  • c语言单元测试代码怎么写
    在C语言中,可以使用一些单元测试框架来编写和运行单元测试代码。以下是一个使用CUnit框架编写的基本示例: #include #i...
    99+
    2023-10-26
    c语言
  • c语言99乘法表代码怎么写
    以下是一个简单的C语言代码示例,用于打印出九九乘法表:```c#include int main() {int i, j;for(i...
    99+
    2023-08-09
    c语言
  • go语言代码怎么转c语言
    go语言代码转c语言方法:1、将Go代码转换为LLVM IR;2、使用LLVM提供的工具将LLVM IR转换为C语言代码;3、使用C语言编译器(如GCC)将生成的C代码编译成可执行文件。本教程操作环境:windows10系统、golang1...
    99+
    2023-07-10
  • c语言大小写字母转化代码怎么写
    在C语言中,可以使用字符数组和ASCII码来实现大小写字母的转化。下面是一个示例代码,将输入的字符串中的大写字母转换为小写字母,小写...
    99+
    2023-10-23
    c语言
  • C语言实现无头单向链表的示例代码
    目录一、易错的接口实现 1.1 新节点开辟函数 1.2 尾插 1.3 尾删 二、常见简单接口 2.1 打印链表 2.2 节点计数器 2.3 判断是否为空链表 2.4 通过值查找节点 ...
    99+
    2022-11-12
  • C语言中链表与单链表有什么用
    这篇文章将为大家详细讲解有关C语言中链表与单链表有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。链表是什么及链表的优势链表是一种介于数组的另外一种数据结构:我们知道数组可以存放很多的元素,这些元素都...
    99+
    2023-06-29
  • C语言链表详解及代码分析
    目录什么是链表环境构建建立静态链表包含所需要的头文件宏定义相关变量创建一个结构体主函数结果展示说明建立动态链表包含所需要的头文件宏定义相关变量创建一个结构体建立链表函数主函数结果展示...
    99+
    2022-11-12
  • java怎么实现单链表反转
    要实现单链表的反转,可以使用迭代或递归两种方法。 迭代法: public ListNode reverseList(ListNo...
    99+
    2023-10-26
    java
  • python怎么实现单向链表及单向链表的反转
    这篇文章给大家分享的是有关python怎么实现单向链表及单向链表的反转的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。链表的定义链表中的每个节点会存储相邻节点的位置信息,单链表中的每个节点只存储下一关节点的位置信息...
    99+
    2023-06-14
  • c语言开根号代码怎么写
    这篇文章主要介绍了c语言开根号代码怎么写,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C...
    99+
    2023-06-14
  • C语言实现线性动态(单向)链表的示例代码
    目录什么是链表为什么不用结构体数组链表的操作创建表删除元素插入元素代码及运行结果什么是链表 链表是数据结构里面的一种,线性链表是链表的一种,线性链表的延伸有双向链表和环形链表。在编程...
    99+
    2022-11-13
  • C语言动态顺序表实例代码怎么编写
    这篇文章给大家介绍C语言动态顺序表实例代码怎么编写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。顺序表概念:        顺序表是用一段物理地址连续的存储单元依次存储数据元素的...
    99+
    2023-06-22
  • C语言实现动态链表的示例代码
    目录结构体定义已经函数声明函数实现创建一个链表判断链表是否为空获得链表中节点的个数在某个特定的位置插入一个元素获得指定下标的节点的元素删除一个节点链表逆序链表的清空链表的销毁链表的遍...
    99+
    2022-11-13
  • c语言快速排序代码怎么写
    下面是一个使用C语言实现快速排序的示例代码:```c#include // 交换两个元素的值void swap(int* a, in...
    99+
    2023-10-11
    c语言
  • C语言实现扫雷代码怎么写
    这篇文章主要介绍了C语言实现扫雷代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言实现扫雷代码怎么写文章都会有所收获,下面我们一起来看看吧。C语言实现扫雷OvO0.打印菜单void men...
    99+
    2023-06-29
  • c语言心形闪动代码怎么写
    下面是一个使用C语言编写的心形闪动代码的示例:```c#include #include #include #include #de...
    99+
    2023-10-11
    c语言
  • c语言素数判断代码怎么写
    以下是一个用C语言编写的判断一个数是否为素数的代码示例: #include <stdio.h> int isPrime...
    99+
    2023-10-21
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作