使用C++中的链表实现数学程序
implementation of a math program using Linked Lists in C++
以下是问题的细节。
创建一个算术程序,将整数存储在链表节点中。每个节点将存储一个三位数的整数,后续节点将保存长度大于四位数的部分数字。
例如:2101453788将由四个节点表示,第一个节点用零填充,从而产生
002
101
453
788
您的程序需要重载算术运算符+和–
输入到程序的每个数字都应有自己的链表,算术结果应存储在结果链表中。算术运算的最终结果应输出到控制台,编号的每个部分都列出了其节点位置。
示例
如果我们想将10000和845相加,输出结果将是:
答案是
节点1=010
节点2=845
给出10845
我很难理解我将如何:a.用0填充左侧b.将整数的大小限制为3位
我想你可以把这个作家称为障碍,我只是无法想象这个节目,正在寻找一些朝着正确方向的温和推动。
到目前为止,我已经:a.创建了一个主类,要求用户以整数的形式输入b.创建一个结构作为我的ListNode
#ifndef LISTNODE_H
#define LISTNODE_H
#include "stdafx.h"
struct ListNode
{
//the integer data for the node
int data;
//Pointers
ListNode* nextPtr;
ListNode* prevPtr;
//Constructor
ListNode(const int& the_data, ListNode* next_node_ptr = NULL, ListNode* prev_node_ptr = NULL)
{
data = the_data;
nextPtr = next_node_ptr;
prevPtr = prev_node_ptr;
}
};
#endif
我想不出的是如何修改我的结构,使其符合3位数的参数,并用0填充单位数或双位数输入的左侧。我想把整数存储在结构内部的数组中,这样我就可以使用索引来分隔数字,但后来我想我必须做大量的字符串操作才能把整数放入数组中。接下来,我考虑将输入作为字符串,并对字符进行计数,以确定所需的节点数。任何投入都会很有帮助,有时我发现很难退一步看全局。
我认为您需要重新处理您的问题,并提出更精确的查询。
据我所知,您正在寻找一种方法,将长度大于3位的数字划分为子部分,以便能够将它们存储在您的链表中。要做到这一点,将每个数字除以1000,直到股息为0。类似于:
1000)999999(999
999000
------
000999
在链表中插入rem,即999。
由于股息尚未为0,因此将rem再次除以:
1000)999(0
0
---
999
现在,被除数是0,所以你可以停止循环,转到下一个整数。希望这能有所帮助!
- 将类实现到数据库程序中
- 如何为模块化应用程序实现C++插件系统
- 如何使用命令提示符、记事本和 MinGW 使用主文件、头文件和实现文件编译C++程序?
- 比较迭代器会使程序崩溃,而不会在自定义气泡排序实现中出现错误
- 为 Sql 服务器实现 odbc 包装器.将数据库数据读取为字符或要求驱动程序将数据转换为 C 类型
- 如何在C / C++中正确实现链接列表而不会使程序崩溃
- 如何在程序中实现单词跳过解决方案
- 如何使用winsock在c++应用程序中实现安全套接字通信
- 在给定程序中降低矢量数组实现堆栈的时间复杂度有哪些不同的可能方法?
- 如何实现否定用户输入退出程序和打印列表?
- 在 MFC 应用程序中实现 IServiceProvider
- CEF C++ 实现下载处理程序
- 如何在 2 个应用程序之间实现拖放?
- C 简单的程序实现
- 如何使用Microsoft PPL轻量级任务调度程序实现后退
- MergeSort.使用迭代程序实现
- 最大子阵列程序实现未终止
- 如何为Web Prediciton程序实现SVM
- 为地铁应用程序实现 directx IMFmediaEngineProtectedContent 时遇到问题
- c++简单程序实现中的继承和虚函数错误