java数据结构之单链表应用之一元多项式求和

原创 2016年06月01日 22:36:28

一元多项式求和有一个特点就是改动特别大,如果用顺序表效率会特别低,所以为了提高效率优先选择链表进行求解。

利用java中单链表进行一元多项式求和,下面直接看案例分析:

package LinkedList;
import LinkedList.Elem.Node;
public class LinkedAdd {
	public Node add(Elem e1,Elem e2){
		Node pre=e1.getNode();
		Node qre=e2.getNode();
		Node p=pre.next;
		Node q=qre.next;
		Node result=p;
		while(p!=null && q!=null){
			if(p.exp<q.exp){
				pre=p;
				p=p.next;
			}else if(p.exp>q.exp){
				Node temp=q.next;
				pre.next=q;
				q.next=p;
				q=temp;
			}else{
				p.coef=p.coef+q.coef;
				if(p.coef==0){
					pre.next=p.next;
					p=pre.next;
				}else{
					pre=p;
					p=p.next;
				}
				qre.next=q.next;
				q=qre.next;
			}
		}
		if(q!=null){
			pre.next=q;
		}
		return result;
	}
	public static void main(String[] args) {
		Elem node1=new Elem();
		node1.insert(7,0);
		node1.insert(12,3);
		node1.insert(2,8);
		node1.insert(5,12);
		
		Elem node2=new Elem();
		node2.insert(4,1);
		node2.insert(6,3);
		node2.insert(2,8);
		node2.insert(5,20);
		node2.insert(7,28);
		LinkedAdd l=new LinkedAdd();
		Node node=l.add(node1, node2);
		while(node!=null){
			System.out.println("coef:"+node.coef+"      exp:"+node.exp);
			node=node.next;
		}
	}
}
class Elem{
	public class Node{
		public int coef;//系数
		public int exp;//指数
		public Node next=null;//下一个节点
		public Node(){
			coef=0;
			exp=0;
		}
		public Node(int coef,int exp){
			this.coef=coef;
			this.exp=exp;
		}
	}
	public Node first=new Node();
	public void insert(int coef,int exp){//添加节点
		Node node=new Node(coef,exp);
		if(first==null){
			first.next=node;
		}else{
			Node temp=first;
			while(temp.next!=null){
				temp=temp.next;
			}
			temp.next=node;
		}
	}
	public Node getNode(){
		return first;
	}
}

如果有什么不清楚或者有啥疑问意见可以加我QQ/微信  208017534  / qiang220316,欢迎一起交流一起进步。




版权声明:本文为博主原创文章,未经博主允许不得转载。

Java链表练习实现一元多项式的加法

链表的实现在之前写过了,就不再写了 将链表的数据域赋值为多项式结点类 多项式结点类: package polynomialOfOneIndeterminate; public class Pol...
  • dly215011
  • dly215011
  • 2016年10月21日 22:56
  • 1091

一元多项式求和(Java链表实现)

package com.polyn_sum; import java.io.BufferedReader; import java.io.IOException; import java.io....
  • u011102153
  • u011102153
  • 2015年04月08日 14:31
  • 894

Java - PAT - 1010. 一元多项式求导 (25)

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式:...
  • qq_34594236
  • qq_34594236
  • 2016年06月18日 22:37
  • 614

PAT 乙级 1010. 一元多项式求导 (25) Java版

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式:...
  • liuchuo
  • liuchuo
  • 2017年02月24日 01:35
  • 341

java 一元多项式相加

  • 2010年04月16日 10:45
  • 3KB
  • 下载

一元多项式的加法和乘法运算(Java实现)——浙大数据结构(陈越)

输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数...
  • zjkC050818
  • zjkC050818
  • 2016年12月13日 15:46
  • 1646

Java - PAT - 1010. 一元多项式求导 (25)

题目链接:1010. 一元多项式求导 (25) 这道题就是个坑 第一个坑:数字之间可能有多个空格 如果你是用Java切割字符串的话 第二个坑:当系数项是0的时候输出0 0   *如:3  4...
  • qq_34594236
  • qq_34594236
  • 2016年05月29日 21:25
  • 1180

PAT 1010. 一元多项式求导 (25) —— Java

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输...
  • akirameia
  • akirameia
  • 2017年06月20日 20:11
  • 95

一元多项式相加 java实现

  • 2010年03月06日 10:58
  • 5KB
  • 下载

JAVA一元多项式相加

  • 2010年04月20日 21:19
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java数据结构之单链表应用之一元多项式求和
举报原因:
原因补充:

(最多只允许输入30个字)