<?php
/**
*一元多项式的表示和相加
*一元多项式的表示采用单链表的形式
**/
header("content-type:text/html;charset=gb2312");
//该类可以在--PHP数据结构之三 线性表中的单链表的PHP实现--找到
include_once("./SingleLinkedList.class.php");
/**
*一元多项式的相加实现算法:直接相加
*@param SingleLinkedList $a 第一个多项式
*@param SingleLinkedList $b 第二个多项式
*@param SingleLinkedList $c 相加后的多项式
*@return void
**/
function polynomialaddition(&$a,&$b,&$c){if(!$a->getIsEmpty() && !$b->getIsEmpty()){$pa=$a->mNext;$pb=$b->mNext;while($pa!=null && $pb!=null){if($pa->mElem['expn'] < $pb->mElem['expn']){$c->getInsertElem($c->getLength(),$pa->mElem);$pc=$pa;$pa=$pa->mNext;}if($pa->mElem['expn'] > $pb->mElem['expn']){$c->getInertElem($c->getLength(),$pb->mElem);$pc=$pb;$pb=$pb->mNext;}if($pa->mElem['expn'] == $pa->mElem['expn']){$ccoef=$pa->mElem['coef']+$pb->mElem['coef'];if(abs($ccoef) < 1.0E-10){$pa=$pa->mNext;$pb=$pb->mNext;}else{$pa->mElem['coef']=$ccoef;$c->getInsertElem($c->getLength(),$pa->mElem);$pa=$pa->mNext;$pb=$pb->mNext;}}} if($pa==null){while($pb!=null){$c->getInsertElem($c->getLength(),$pb->mElem);$pb=$pb->mNext;}}elseif($pb==null){while($pa!=null){$c->getInsertElem($c->getLength(),$pa->mElem);$pa=$pa->mNext;}}}
}
//coef表示系数
//expn表示指数
$adata=array(array('coef'=>5,'expn'=>0,),array('coef'=>2,'expn'=>1,),array('coef'=>4,'expn'=>2,  ),array('coef'=>13,'expn'=>3, ),array('coef'=>160,'expn'=>4,),array('coef'=>12,'expn'=>5),array('coef'=>23,'expn'=>6,),array('coef'=>34,'expn'=>7,),array('coef'=>22,'expn'=>8, ),
);
$bdata=array(array('coef'=>16,'expn'=>0,),array('coef'=>9,'expn'=>2,),array('coef'=>17,'expn'=>4,),array('coef'=>-12,'expn'=>5,),
);
$a=new SingleLinkedList();
$b=new SingleLinkedList();
$c=new SingleLinkedList();
$a->getTailCreateSLL($adata);
$b->getTailCreateSLL($bdata);
polynomialaddition($a,$b,$c);
echo "\$a多项式的数据为:<pre>";
var_dump($a->getAllElem());
echo "</pre>";
echo "\$b多项式的数据为:<pre>";
var_dump($b->getAllElem());
echo "</pre>";
echo "一元多项式相加结果:<pre>";
var_dump($c->getAllElem());
echo "</pre>";
?>

转载于:https://www.cnblogs.com/crystaltu/p/6408520.html

PHP数据结构之四 一元多项式的相加PHP单链实现相关推荐

  1. 【数据结构】一元多项式

    实验报告格式规范,包括以下内容:(正文 宋体五号 ) 一.问题描述(标题黑体小四) 对简单的一元多项式相加.相减.求导运算. 二.实验目的 实现对简单的一元多项式相加.相减.求导运算. 三.实验设计 ...

  2. 数据结构:一元多项式(线性表)

    实验方案: 分别采用了顺序表.链表的方式实现一元多项式完成多项式的加.减运算并求值 1.实现功能描述: (1) 输入和输出: 需要输入的信息有多项式的系数和指数,用来向系统动态申请内存:系数和指数用来 ...

  3. 一元多项式的相加(单链表的应用)

    一元多项式的相加,基于单链表的结构上实现的. 单链表的结点结构定义为: typedef struct _NODE { int coef; int exp; struct _NODE *next; }N ...

  4. C语言数据结构实现——一元多项式的基本运算

    问题描述: ​​​​​​ 第一种算法:顺序存储结构实现--顺序表 (1)算法思路: 算法要​实现两个一元多项式相关的相关运算,相加.相减.相乘.首先我们要选取一种存储结构来存放我们多项式的每一项,我们 ...

  5. 单链表一元多项式求和java_计算一元多项式的相加

    一元多项式的表达和相加 ​ 使用单链表表示一元多项式,由于使用java语言自己编写实现,没有使用LinkedList集合实现.所以需要创建单链表的类,类中包含指数,系数和后继元素的地址.类的设计如下: ...

  6. 数据结构_一元多项式的建立及其运算

    一元多项式的建立及其运算 一元多项式的数据结构 输入一元多项式的函数 输出保存在单链表中的一元多项式 运算一元多项式并输出结果 main函数中的内容 一元多项式的数据结构 #ifndef __POLY ...

  7. 数据结构一元多项式的相加-单链表实现

    实验内容:把任意给定的两个一元多项式P(x) ,Q(x) 输入计算机,计算它们的和并输出计算结果. 一元多项式可以用单链表表示,结点结构图示如下: coef  exp next 首先分析一下这个过程是 ...

  8. 【数据结构】一元多项式的表示及相加

    文章目录 ⭐️写在前面的话⭐️ 一元多项式的表示及相加 初始化 0_1.初始化链表 0_2_1.头插法插入多项式的项(没有相同项) 0_2_2.将要插入的相同,链表中有相同项,对应系数相加 0_3.从 ...

  9. 【数据结构】一元多项式相加(链表应用实验)

    //定义一元多项式链表结点结构HLink //创建一元多项式链表函数 void Build(HLink &H); //输出一元多项式链表函数 void Exp(HLink H);#includ ...

最新文章

  1. 《崛起的超级智能》入选中国好书2019年7月榜单
  2. zookeeper安装教程(zookeeper3.4.5为例)
  3. python中的logger模块详细讲解
  4. 使用路标的Scala和Java的Twitter REST API
  5. 拥抱云原生,Fluid结合JindoFS :阿里云OSS加速利器
  6. 网校网络工程师视频下载
  7. python变量名长度有限制吗_url长度有限制么?
  8. 鲁班H5页面生成工具源码
  9. 毕业设计,微信小程序-购物小程序
  10. Mybatis XML文件属性配置
  11. 英超 狼队 vs 纽卡斯尔联
  12. 我的世界服务器等级系统,[娱乐][角色][聊天][上古之石]LevelSignPlus——服务器等级声望系统[1.7.2-1.10.2]...
  13. NB-IoT低功耗技术与寻呼
  14. 官宣!辛保安任国家电网有限公司董事长、党组书记
  15. 计算机学校校歌,【2018十大最受欢迎高校校歌】_最受欢迎的十大高校校歌
  16. 【助教工作】2021团队项目助教跟班全攻略
  17. [2017校招]大可打卡1
  18. Python concurrent.future 使用教程及源码初剖
  19. Android自定义View绘制条形统计图
  20. php自媒体,新手怎么做自媒体

热门文章

  1. linux 迁移mysql目录_linux默认mysql迁移目录
  2. java jobdetail_Spring创建JobDetail的两种方式
  3. java metapojo_hibernate错误[org.hibernate.tuple.entity.PojoEntityTuplizer],这是什么错误,怎么解决?...
  4. mysql 报错10614_PostgreSQL转换为Mysql
  5. 2台电脑一根网线传文件_用1根网线直连2台电脑,能干嘛?
  6. linux安装trac+svn+apache+wike,apache+svn+trac安装及配置2
  7. java 鼠标拖动画矩形_java怎么实现鼠标在桌面拖动过程中 画 矩形的 功能?
  8. 计算机中信息表示方法,计算机中的信息表示方法二进制
  9. mysql 免密码进入_MySQL 5.7 三种免密码登录
  10. java m2文件放哪里_windows下打开.m2文件夹,没有找到setting.xml