数据结构实验一 用链表实现大整数加减法

本文介绍如何使用链表实现大整数的加减法操作。在32位机器上,超过32个bit的大整数需特殊算法处理。通过创建链表,每个节点存储一个十进制位,能进行大整数算术运算。实验任务包括生成两个1~50位的数字链表,执行加减法并输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

用链表实现大整数加减法操作:

32位机器直接操作的数据最大为32个bit,若超过32bit,则需要单独设计算法。在这里,可以用链表每个结点存储大整数的每一位的十进制数字,则可以进行大整数的算数运算,该实验仅实现加减法操作。

要求:

  1. 随机产生2个1~50位的数字串,并存储到2个链表中。
  2. 进行加法或减法操作,结果存储到新的链表中。
  3. 打印运算结果。

目录

BigInteger.h

BigInteger.cpp

function.h

function.cpp  

main.cpp

 


BigInteger.h

#include <bits/stdc++.h>
using namespace std;

struct Node {
    int data;
    Node* next;
};

class LinkList {
public:
    Node* front;
    int length = 0;//链表长度

    LinkList();//初始化
    ~LinkList();//释放内存
    void Insert(int);//插入数据
    void GetList();//调试用
    void PrintList();//打印
    int GetRear();//得到尾节点数据
};

BigInteger.cpp

#include "BigInteger.h"

//初始化链表
LinkList::LinkList() {
    front = new Node;
    front->next = NULL;
}

//释放动态内存
LinkList::~LinkList() {
    Node* p = front;
    while (p) {
        front = p;
        p = p->next;
        delete front;
    }
}

//头插法在链表插入数据
void LinkList::Insert(int x) {
    Node* s = new Node;
    s->data = x;
    s->next = front->next;
    front->next = s;
    length++;
}

//调试用函数(手动输入数据)
void LinkList::Get
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LabulaH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值