数据结构(线性表的链式实现):稀疏多项式

#include <iostream>
//稀疏多项式合并
typedef struct PNode
{
    int expn;//指数
    float  coef;//系数
    struct PNode *next;
}PNode,*Polyn;
void create_polyn(Polyn &s,int n)
{
    s=new PNode ;//头节点
    s->next=nullptr;
    PNode *q=new PNode;
    PNode *pre=new PNode;
    q=s;
    for (int i = 0; i < n; ++i) {
        PNode *e=new PNode; //局部变量保存新节点
        std::cin>>e->coef>>e->expn;
        pre=s;//q的前驱
        q=s->next;//每次选位置前,q都要指向首元结点
        while (q&&q->expn<e->expn)
        {
            pre=q;
            q=q->next;
        }
        //插入e
        e->next=q;
        pre->next=e;
    }
}
void Add_Polyn(Polyn &a,Polyn &b)
{
//相同指数,对应系数加,不同指数,小的先放,合并到a
    PNode *ap=new PNode ;
    PNode *bp=new PNode ;
    PNode *apre=new PNode ;
    PNode *bpre=new PNode ;
    ap=a->next,bp=b->next;
    apre=a,bpre=b;
    float  sum;
    while (ap&&bp)
    {
        PNode *node;
        if(ap->expn==bp->expn)
        {//指数相等,系数相加不等于0和等于0
            sum = ap->coef + bp->coef;
            if (sum!=0) {
                ap->coef = sum;
                node=bp;
                bpre->next=bp->next;
                bp = bp->next;
                ap = ap->next;
                apre = apre->next;
                delete node;
            } else {
                node=ap;
                apre->next = ap->next;
                ap = ap->next;
                delete node;
                bpre->next = bp->next;
                node=bp;
                bp = bp->next;
                delete node;
            }
        }
        else if(ap->expn>bp->expn)
        {
            bp->next=ap;
            apre->next=bp;
            apre=bp;
            bpre=bp;
            bp=bp->next;
        } else{
            apre=ap;
            ap=ap->next;
        }

    }
//剩下的
    while (bp){
        ap->next=bp;
        bp=bp->next;
    }
}
void output(Polyn a)
{
    a=a->next;
    while (a)
    {
        printf("%0.2f %d  ",a->coef,a->expn);
        a=a->next;
    }
    printf("\n");

}
int main() {
    //两个稀疏多项式a,b
    Polyn a,b;
    int a_len,b_len;
    std::cin>>a_len;
    std::cin>>b_len;
    create_polyn(a,a_len);
    create_polyn(b,b_len);
    output(a);
    output(b);
    Add_Polyn(a,b);
    output(a);
    return 0;
}

input 

c*x^y 输入系数c,指数y

4 3
3 0 2 2 -5 1 7 3
5 0 10 1 -2 2

### IntelliJ IDEA 2024 安装教程及配置指南 #### 下载 IntelliJ IDEA 安装包 要安装 IntelliJ IDEA 2024,首先需要访问 JetBrains 的官方网站或其他可信源下载最新的版本。可以选择 Community Edition(免费开源版)或 Ultimate Edition(付费专业版)。确保选择适合操作系统的版本[^1]。 #### Windows 平台下的安装配置 在 Windows 上安装 IntelliJ IDEA 主要分为以下几个方面: - **安装过程** 双击下载好的 `.exe` 文件启动安装向导,按照提示完成安装即可。建议勾选“创建桌面快捷方式”,以便后续快速打开软件。 - **基本配置** 启动 IntelliJ IDEA 后进入欢迎界面,可以通过 “Configure -> Settings” 进入全局设置页面。在此处可以修改默认字体大小、主题颜色以及键盘布局方案等基本信息。 - **自定义和扩展** 在 `File -> Project Structure` 中可指定项目的 SDK 和模块路径。对于多语言项目,还可以通过插件支持其他编程语言,例如 Python 或 Go[^4]。 - **更新维护** 如果有新版本发布,可以从官方渠道手动升级,或者启用自动检测更新功能来保持 IDE 始终处于最新状态。 #### macOS 平台下的安装配置 macOS 用户可以直接从官网下载 `.dmg` 格式的镜像文件进行安装: - **安装流程** 将应用程序拖拽至 Applications 文件夹中即完成了初步部署工作。首次运行时会引导用户完成一些必要的初始化设定。 - **创建并配置项目** 新建 Java 工程时需正确指派 JDK 路径;如果是 Web 开发,则可能还需要额外引入 Tomcat 等服务器组件作为依赖项之一。 - **编写调试代码** 利用内置的强大编辑器能够高效地撰写业务逻辑代码片段,并借助断点机制实现精准定位错误位置的功能。 #### Linux 平台下的安装配置 Linux 发行版通常不提供图形化安装程序,因此主要依靠命令行完成整个过程: - **安装方法** 解压 tar.gz 归档之后将其移动到合适目录下比如 `/opt/` ,再赋予执行权限给 bin 子目录中的启动脚本文件。 - **注意事项** 确认已预先安装好 OpenJDK 或 Oracle JDK 至少达到最低兼容标准之上才能保障正常运转效果良好。 #### 深入了解高级配置 为了进一步优化工作效率,推荐探索如下领域内的相关内容: - **自定义快捷键** 打开 Preferences 对话框找到 Keymap 分支节点重新映射常用动作对应的热键组合形式以适应个人习惯偏好。 - **版本控制集成** 支持 Git/SVN/Mercurial 等主流 VCS 协议无缝衔接远程仓库管理事务处理需求。 - **外观行为调整** 更改窗口布局样式选项卡显示模式通知中心过滤级别等等细节之处均有助于塑造独一无二的工作空间氛围。 #### 使用技巧最佳实践 充分利用以下特性可以让日常编码变得更加轻松愉快: - **利用代码生成重构功能** 自动生成 getter/setter 方法简化重复劳动强度的同时还能有效减少人为失误概率发生几率[^2]。 - **使用代码分析检查工具** 实时监控潜在风险隐患提前预警从而降低后期修复成本支出负担程度加重可能性。 - **插件扩展应用** 浏览市场挑选适合自己团队协作场景所需的第三方附加组件增强核心框架之外的服务能力范围覆盖广度拓宽幅度加大趋势明显可见一斑。 ```python # 示例:Python 插件配置 def configure_python_plugin(): from pydev import PyDevPackage plugin = PyDevPackage() plugin.install() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值