青岛大学_王卓老师【数据结构与算法】Week04_12_案例分析与实现2_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第04周12–2.8案例分析与实现2–稀疏多项式运算

📚 【Week04】12_案例分析与实现

稀疏多项式的运算

多项式非零项的数组表示

在这里插入图片描述

线性表 A = ((7, 0), (3, 1), (9, 8), (5, 17));
线性表 B = ((8, 1), (22, 7), (-9, 8));

(1) 创建一个新数组 c

(2) 分别从头遍历比较 a 和 b 的每一项

  • 指数相同,对应系数相加,若其和不为零,则在 C 中增加一个新项

  • 指数不相同,则将指数较小的项复制到 c 中

(3) 一个多项式已遍历完毕时,将另一个剩余项一次复制到 c 中

❓ 数组 c 多大合适呢?

顺序存储结构存在的问题:存储空间分配不灵活,运算的空间复杂度高

链式存储结构

typedef struct PNode{float coef;				// 系数int expn;				// 指数struct PNode* next;		// 指针域
}PNode, *Polynomial;

在这里插入图片描述

【算法描述】多项式创建

void CreatePolyn(Polynomial &P int n)
P=new PNode;P->next=NULL;for(i=1;i<=n;++i) {s=new PNode:cin>>s->coef> >s->expn;pre=P:q=P->next;while(q&&q->expn<s->expn){pre=q;q=q->next;
s->next=q;pre->next=s;无效创建Polyn(多项式和P,整数n)
P=新的PNode;
下一个=空值;
对于(i=1;i<=n;++i)
S=新的PNode;
CIN>S->Coef>S->EXPN;
pre=P;
Q=P->下一个;
而(q&q->EXPN<S->EXPN){
前=q;q=q-下一个;
9
一个=s;
//输入m项的系数和指数,建立表示多项式的有序链表F
//先建立一个带头结点的单链表//依次输入n个非零项
//生成新结点
//输入系数和指数
//pre用于保存q的前驱,初值为头结点//q初始化,指向首元结点//找到第一个大于输入项指数的项*q
//将输入项s插入到q和其前驱结点pre之间

多项式相加过程

在这里插入图片描述

新的多项式 C

在这里插入图片描述

【算法步骤】多项式相加

(1) 指针 p1 和 p2 初始化,分别指向 Pa 和 Pb 的首元结点。

(2) p3 指向和多项式的当前结点,初值为 Pa 的头结点。

(3) 当指针 p1 和 p2 均未达到相应表尾时,

则循环比较 p1 和 p2 所指结点对应的指数值(p1->expn 与 p2->expn),有下列 3 种情况

  • 当 p1->expn == p2->expn 时,则将两个结点种的系数相加

  • 若和不为零,则修改 p1 所指结点的系数值,同时删除 p2 所指结点。

  • 若和为零,则删除 p1 和 p2 所指结点。

  • 当 p1->expn < p2->expn 时,则应摘取 p1 所指结点插入到 " 和多项式 " 链表中去;

  • 当 p1->expn > p2->expn 时,则应摘取 p2 所指结点插入到 " 和多项式 " 链表中去;

(4) 将非空多项式的剩余段插入到 p3 所指结点之后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18926.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React Dva项目创建Model,并演示数据管理与函数调用

本文的话 我们讲一下定义Model 也就是Dva中redux的部分 我们打开一个刚创建的Dva项目 看到 src下的models 下 就是Model部分 这里 他给我们了一个案例 如果用 react-redux 管理 模块多了之后会看着比较乱 或 很麻烦 但是 大家会发现 在Model中 他将这些都放在一起了 只需要创建…

使用Dcoker Registry搭建私有镜像仓库

Dcoker Registry 和Harbor有什么相似和区别&#xff1f;各自有什么优劣&#xff0c;请详细介绍 Docker Registry和Harbor都是容器镜像仓库管理系统&#xff0c;用于存储、管理和分发Docker镜像。它们有一些相似之处&#xff0c;但也存在一些区别。下面是对它们的相似之处和区别…

IDEA配置Maven教程

IDEA配置Maven教程 &#x1f495;1、mavne的下载&#x1f495;2、maven的安装&#x1f49e;3、配置Maven环境变量&#x1f49e;4、配置 Maven 本地仓库存放路径&#x1f496; 5、settings.xml配置&#xff1b;&#x1f496;6、IDEA配置maven&#xff1b;&#x1f496;7、清理下…

IIS实现http跳转https的重定向方法

整体流程为&#xff1a; 1、安装SSL证书&#xff1b;2、下载安装URL Rewrite模块&#xff1b;3、配置“URL重写”规则&#xff0c;或者修改web.config配置文件。 一、安装部署证书 首先安装SSL证书。 二、安装URL ReWrite扩展 URL ReWrite扩展下载地址https://www.iis.net/…

数据库管理-第八十五期 19c OCM之路-准备与环境篇(20230626)

数据库管理 2023-06-26 第八十五期 19c OCM之路-准备与环境篇1 计划2 考试环境3 技巧和注意事项总结 第八十五期 19c OCM之路-准备与环境篇 从去年就有消息传出&#xff0c;OCM将从12c升级到19c&#xff0c;今年12c OCM停考&#xff0c;从业内大佬和OU处了解到其实今年3月30日…

智慧水务平台-让城市水资源管理更智慧,更高效

平台概述 智慧水务平台是以物联感知技术、大数据、智能控制、云计算、人工智能、数字孪生、AI算法、虚拟现实技术为核心&#xff0c;以监测仪表、通讯网络、数据库系统、数据中台、模型软件、前台展示、智慧运维等产品体系为支撑&#xff0c;以城市水资源、水生态、水环境和水…

深入剖析 JavaScript 数组和字符串的各种操作技巧

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;深入剖析 JavaScript 数组和字符串的各种操作技巧 近日总结了一下js数组和字符串相关操作方法&#xff0c;今天输出一篇博客&#xff0c;进行前端有关数组字符串相关操作方法的汇总&#xff0c;以后…

前端|CSS(二)

参考视频&#xff1a;黑马程序员前端CSS3基础教程&#xff0c;前端必备基础 目录 &#x1f4da;CSS 布局的三种机制 &#x1f407;普通流 &#x1f407;浮动 ⭐️浮动介绍 ⭐️浮动(float)的应用 ⭐️浮动(float)的扩展 ⭐️清除浮动 &#x1f407;定位 ⭐️定位 ⭐️…

渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

在上篇文章中,我们介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染引擎之后,渲染引擎首先将 HTML 解析为浏览器可以理解的 DOM;然后根据 …

uniapp快速开发小程序全流程

uniapp快速开发小程序全流程 完整项目代码&#xff1a;https://gitee.com/Zifasdfa/ziyi-app 欢迎fork与star 1 项目效果及环境准备 1.1 项目效果 本文主要使用uniapp实现一个简单的app应用 1.2 环境准备&项目初始化 ①node环境&#xff1a;去node.js官网下载稳定版的nod…

BATJ 面试 Java 岗:精选 1200+ 面试题及答案

Z 认为&#xff0c;对于 Java 面试以及进阶的最佳学习方法莫过于刷题博客书籍总结&#xff0c;前三者 LZ 将淋漓尽致地挥毫于这篇文章中&#xff0c;至于总结在于个人&#xff0c;实际上越到后面你会发现面试并不难&#xff0c;其次就是在刷题的过程中有没有去思考&#xff0c;…

Fiddler抓取app HTTPS请求

一、电脑和手机连接同一WIFI cmd->ipconfig&#xff0c;查看电脑当前IP地址为192.168.101.48 二、配置Fiddler Options选项勾选Allow remote computers to connect。 安装证书 勾选抓取HTTPS请求 三、手机端配置代理 手机端连接wifi&#xff0c;手动配置代理。 主机名&…