河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.5 线性表的应用

多项式 求两个多项式相加的程序 例如,p(x)=2x 3+3.2x 5-6x+10,q(x)=6x+1.8x 5-2x 3+x 2-2.5x 4-5 r(x)=5x 5-2.5x 4+x 2+5 r(x)=p(x)+q(x) 1/38

(c1,e1) (c2,e2) . (cm,em) 多项式项 多项式线性表 2/38

ADT PolyClass //多项式抽象数据类型 { 数据对象: PolyElem={(ci,ei) | 1≤i≤n,ci∈double,ei∈int}; 数据关系: r={ | xi,yi∈PolyElem,i=1,.,n-1} 基本运算: void Add(PolyElem p):将多项式项p添加到末尾。 void CreatePoly(double [] a,int [] b,int n): 由数组a和b创建多项式顺序表。 void Sort():对多项式顺序表按指数递减排序。 void DispPoly():输出多项式顺序表。 } //ADT PolyClass 在PolyClass的基础上实现以下求两个多项式L1和L2相加的运算算法: PolyClass Add(PolyClass L1,PolyClass L2); 3/38

1. 设计顺序存储结构 多项式项类型PolyElem class PolyElem //多项式顺序表元素类型 { double coef; //系数 int exp; //指数 PolyElem(double c,int e) //构造方法 { coef=c; exp=e; } public int getexp() //返回exp { return exp; } } 4/38

多项式顺序表PolyClass类 class PolyClass //多项式顺序表类 { ArrayList poly; //存放多项式顺序表 public PolyClass() //构造方法 { poly=new ArrayList(); //分配顺序表的data空间 } //包含Add、CreatePoly、Sort和DispPoly方法 } 5/38

coef 2.0 3 3.2 5 -6.0 1 10.0 0 . . . exp . poly p(x)=2x 3+3.2x 5-6x+10 6/38

2. 设计PolyClass的基本运算算法 public void Add(PolyElem p) //末尾添加一个多项式项 { poly.add(p); } 7/38

public void CreatePoly(double[] a,int[] b,int n) //建立多项式顺序表 { for (int i=0;i<n;i++) poly.add(new PolyElem(a[i],b[i])); } 8/38

public void Sort() //对多项式顺序表按exp成员递减排序 { poly.sort(Comparator.comparing(PolyElem::getexp).reversed()); } 9/38

public void DispPoly() //输出多项式顺序表 { boolean first=true; //first为true表示是第一项 int i=0; while (i0) System.out.print("+"); if (p.exp==0) //指数为0时不输出'x' System.out.print(p.coef); else if (p.exp==1) //指数为1时不输出指数 System.out.print(p.coef+"x"); else System.out.print(p.coef+"x^"+p.exp); i++; } System.out.println(); } 10/38
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.1 线性表的定义 2.2 线性表的顺序存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.3 算法分析 1.4 数据结构的目标.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.1 什么是数据结构 1.2算法及其描述.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第13章 网络编程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第12章 多线程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第11章 JDBC.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第10章 IO.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第9章 反射机制.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第8章 泛型.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第7章 集合.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第6章 Java API.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第5章 异常.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第4章 面向对象(下).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第3章 面向对象(上).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第2章 Java编程基础.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第1章 Java开发入门.pptx
- 《数据结构》课程教学课件(PPT讲稿)第三章 栈和队列.ppt
- 《数据结构》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 《数据结构》课程教学大纲 Data Structure.doc
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.1 栈.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.2 队列.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第4章 串.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第5章 递归.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第6章 数组和稀疏矩阵.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.1 树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.2 二叉树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.3 二叉树先序、中序和后序遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.4 二叉树的层次遍历 7.5 二叉树的构造.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.6 线索二叉树 7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.9 树算法设计和并查集.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.1 图的基本概念 8.2 图的存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.3 图的遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.4 生成树和最小生成树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.5 最短路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.6 拓扑排序 8.7 AOE网与关键路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.1 查找的基本概念 9.2 线性表的查找.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(1/2).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(2/2).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.4 哈希表查找.pptx
