使用 C++ 中的类将两个由链表表示的数字相加2024 年 8 月 28 日 | 3 分钟阅读 以下代码是在 C++ 中将两个由链表表示的数字相加的实现。在此实现中,输入的链表假定以反向表示数字,即最低有效位位于链表的头部。该实现首先为链表节点定义一个结构。每个节点都有一个整数值和指向列表中下一个节点的指针。该实现还定义了一个名为 addTwoNumbers 的函数,该函数将指向输入链表头部的两个指针作为参数,并返回指向结果链表头部的指针。 C++ 代码 输出 7 0 8 The result id due to formation: Input: l1: 2 -> 4 -> 3 l2: 5 -> 6 -> 4 Internal Working Output: 7 -> 0 -> 8 This represents the sum 342 + 465 = 807. 说明 addTwoNumbers 函数首先创建一个虚拟节点作为结果链表的头部。虚拟节点的值初始化为 0,其 next 指针设置为 NULL。该函数还初始化一个名为 curr 的指针,指向虚拟节点。然后,该函数开始遍历两个输入链表以及前一个加法产生的任何进位。在每次迭代中,它计算两个输入链表的当前数字和进位的总和,并在结果链表中创建一个新节点,其值为总和的最低有效位。下一次迭代的进位设置为总和的最高有效位。 该函数继续迭代,直到两个输入链表和任何进位都耗尽。此时,结果链表已完成,函数返回指向其头部的指针。在 main 函数中,该实现创建两个输入链表并调用 addTwoNumbers 函数来计算它们的和。然后它遍历结果链表并打印出其节点的值。总的来说,该实现是解决 C++ 中将两个由链表表示的数字相加问题的直接而高效的解决方案。它利用了输入链表已经按逆序排列的事实来简化加法操作的逻辑。它还使用虚拟节点作为结果链表的头部来简化边缘情况的处理。 我们首先创建一个虚拟节点作为新链表的头部。我们还创建一个指向 curr 的指针,该指针指向我们正在添加到新链表的当前节点。我们将 carry 初始化为 0,它将保存前一个加法产生的任何进位。我们遍历两个链表和进位,添加相应的值和前一个加法产生的进位。 如果其中一个链表比另一个短,我们将其缺失的节点视为值为 0。我们创建一个新节点,其值为总和模 10(因为两位数的最大和是 9 + 9 = 18),并将进位设置为总和除以 10。我们将 curr 移动到新创建的节点。最后,我们返回虚拟节点之后的下一个节点。 下一主题C++ 中的关联容器 |
Token 是 C、C++ 和 Java 等编程语言中的常见概念。Token 是 C++ 程序中最小的独立单元,编译器在词法分析期间使用它们来分析和解释代码。使用这些 Token,我们可以识别……
阅读 10 分钟
C++ 是一种编程语言,它为程序员提供了控制系统内存和资源的能力。借助 C++ 编程语言,我们可以开发高性能应用程序。在 C++ 中,static 是一种方法类型,我们可以创建...
阅读 3 分钟
Chrono 是一个 C++ 头文件,包含一组与时间相关的类和方法。它是 C++ 标准模板库 (STL) 的一部分,并且与 C++11 及更高版本一起包含。< Chro no> 支持三种时钟:system_clock、steady_clock 和 high_resolution_clock。这些时钟被用来...
阅读 3 分钟
介绍:当与输出流一起使用时,tellp() 函数返回流中“put”指针的当前位置。它没有参数,并返回 pos_type 成员类型的值,pos_type 是一个整数数据类型,表示 put 流指针的当前位置。语法:pos_typetellp(); 返回值:如果成功,则为当前...
阅读1分钟
在当今世界,计算机网络在数据传输领域扮演着重要的角色。这是每个程序员都应该了解的科目。在计算机网络中,套接字编程是编程世界中最重要的主题之一。在本主题中,我们是...
11 分钟阅读
在本文中,我们将讨论包含其类型、示例和用法的变量。什么是变量遮蔽?变量遮蔽(Variable Shadowing)是一种编程语言概念,当一个变量在给定的作用域内隐藏或遮蔽了来自更广泛作用域的同名变量时发生。这……
阅读 4 分钟
大家好!今天我们将学习关于。我们可能会有一个疑问,为什么函数在 C++ 中被称为裸函数(naked function)?在我们了解它之前,我们应该先了解什么是函数调用?C++ 中的函数调用是激活函数的过程,并且...
7 分钟阅读
如果调用函数未能为参数提供值,编译器将自动分配函数声明中提供的默认参数中指定的值。如果提供了任何值,则会覆盖默认值。这是一个显示...的直接 C++ 示例。
阅读 3 分钟
在本文中,您将了解 C++ 中的 is_open 函数及其语法和示例。is_open 函数是什么?在 C++ 中,is_open() 函数用于确定文件流是否已打开。它接受一个文件流对象作为输入,并返回一个布尔值,指示……
阅读 4 分钟
在本文中,我们将通过几个示例讨论如何在 C++ 中计算右侧较小的元素。下面是 N 维无序数组 arr[],由唯一整数组成。我们的目标是创建一个第二数组 count,其中 count 将……
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India