import java.io.*;
import java.util.*;
public class PolynomialAddition
{
static Scanner inFile;
{
dataInpt
=new File("C:\\llpoly.txt"); inFile=new Scanner(dataInpt);
Node parent = new Node();
while (inFile.hasNextLine())
{
Node tempParent = parent;
line=inFile.nextLine();
while (myTokens.hasMoreTokens())
{
Node current = new Node();
String polyTerm
=myTokens.
nextToken();
current.value=polyTerm.substring(0,polyTerm.indexOf("x"));
current.value2=polyTerm.substring(polyTerm.indexOf("^")+1);
if(parent==null)
parent.value=current.value;
else
{
parent.next=current;
parent=current;
}
}
printList(tempParent.next);
Node tempParent2 = parent;
line=inFile.nextLine();
while (myTokens.hasMoreTokens())
{
Node current = new Node();
String polyTerm
=myTokens.
nextToken();
current.value=polyTerm.substring(0,polyTerm.indexOf("x"));
current.value2=polyTerm.substring(polyTerm.indexOf("^")+1);
if(parent==null)
parent.value=current.value;
else
{
parent.next=current;
parent=current;
}
}
printList(tempParent2.next);
System.
out.
println("Really crude, next two lines\n\n");
}
}
public static void printList(Node head)
{
Node ptr; //not pointing anywhere
for(ptr=head;ptr!=null;ptr=ptr.next)
System.
out.
print(ptr.
value + " " + ptr.
value2 + " "); }
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwpwdWJsaWMgY2xhc3MgUG9seW5vbWlhbEFkZGl0aW9uCnsKICAgIHN0YXRpYyBGaWxlIGRhdGFJbnB0OwogICAgc3RhdGljIFNjYW5uZXIgaW5GaWxlOwoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbgogICAgewogICAgICBkYXRhSW5wdD1uZXcgRmlsZSgiQzpcXGxscG9seS50eHQiKTsKICAgICAgaW5GaWxlPW5ldyBTY2FubmVyKGRhdGFJbnB0KTsKICAgICAgU3RyaW5nVG9rZW5pemVyIG15VG9rZW5zOwogICAgICBTdHJpbmcgbGluZSwgc2VudGVuY2U7CiAgICAgIE5vZGUgcGFyZW50ID0gbmV3IE5vZGUoKTsKICAgICAgd2hpbGUgKGluRmlsZS5oYXNOZXh0TGluZSgpKQogICAgICB7CiAgICAgICAgTm9kZSB0ZW1wUGFyZW50ID0gcGFyZW50OwogICAgICAgIGxpbmU9aW5GaWxlLm5leHRMaW5lKCk7CiAgICAgICAgbXlUb2tlbnM9bmV3IFN0cmluZ1Rva2VuaXplcihsaW5lKTsKICAgICAgICB3aGlsZSAobXlUb2tlbnMuaGFzTW9yZVRva2VucygpKQogICAgICAgIHsKICAgICAgICAgIE5vZGUgY3VycmVudCA9IG5ldyBOb2RlKCk7CiAgICAgICAgICBTdHJpbmcgcG9seVRlcm09bXlUb2tlbnMubmV4dFRva2VuKCk7CgogICAgICAgICAgY3VycmVudC52YWx1ZT1wb2x5VGVybS5zdWJzdHJpbmcoMCxwb2x5VGVybS5pbmRleE9mKCJ4IikpOwogICAgICAgICAgY3VycmVudC52YWx1ZTI9cG9seVRlcm0uc3Vic3RyaW5nKHBvbHlUZXJtLmluZGV4T2YoIl4iKSsxKTsKCiAgICAgICAgICBpZihwYXJlbnQ9PW51bGwpCiAgICAgICAgICAgIHBhcmVudC52YWx1ZT1jdXJyZW50LnZhbHVlOwogICAgICAgICAgZWxzZQogICAgICAgICAgewogICAgICAgICAgICBwYXJlbnQubmV4dD1jdXJyZW50OwogICAgICAgICAgICBwYXJlbnQ9Y3VycmVudDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnRMaXN0KHRlbXBQYXJlbnQubmV4dCk7CgoKICAgICAgTm9kZSB0ZW1wUGFyZW50MiA9IHBhcmVudDsKICAgICAgICBsaW5lPWluRmlsZS5uZXh0TGluZSgpOwogICAgICAgIG15VG9rZW5zPW5ldyBTdHJpbmdUb2tlbml6ZXIobGluZSk7CiAgICAgICAgd2hpbGUgKG15VG9rZW5zLmhhc01vcmVUb2tlbnMoKSkKICAgICAgICB7CiAgICAgICAgICBOb2RlIGN1cnJlbnQgPSBuZXcgTm9kZSgpOwogICAgICAgICAgU3RyaW5nIHBvbHlUZXJtPW15VG9rZW5zLm5leHRUb2tlbigpOwoKICAgICAgICAgIGN1cnJlbnQudmFsdWU9cG9seVRlcm0uc3Vic3RyaW5nKDAscG9seVRlcm0uaW5kZXhPZigieCIpKTsKICAgICAgICAgIGN1cnJlbnQudmFsdWUyPXBvbHlUZXJtLnN1YnN0cmluZyhwb2x5VGVybS5pbmRleE9mKCJeIikrMSk7CgogICAgICAgICAgaWYocGFyZW50PT1udWxsKQogICAgICAgICAgICBwYXJlbnQudmFsdWU9Y3VycmVudC52YWx1ZTsKICAgICAgICAgIGVsc2UKICAgICAgICAgIHsKICAgICAgICAgICAgcGFyZW50Lm5leHQ9Y3VycmVudDsKICAgICAgICAgICAgcGFyZW50PWN1cnJlbnQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByaW50TGlzdCh0ZW1wUGFyZW50Mi5uZXh0KTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWxseSBjcnVkZSwgbmV4dCB0d28gbGluZXNcblxuIik7CgogICAgICB9CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRMaXN0KE5vZGUgaGVhZCkKICAgIHsKICAgIAlOb2RlIHB0cjsgLy9ub3QgcG9pbnRpbmcgYW55d2hlcmUKICAgIAlmb3IocHRyPWhlYWQ7cHRyIT1udWxsO3B0cj1wdHIubmV4dCkKICAgIAkgIFN5c3RlbS5vdXQucHJpbnQocHRyLnZhbHVlICsgIiAgIiArIHB0ci52YWx1ZTIgKyAiICAiKTsKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgIH0KfQ==