package?Test;
創(chuàng)新互聯(lián)公司專注于金壇企業(yè)網站建設,響應式網站開發(fā),成都做商城網站。金壇網站建設公司,為金壇等地區(qū)提供建站服務。全流程按需定制,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.Reader;
import?java.io.StringBufferInputStream;
import?java.io.StringReader;
import?java.util.Scanner;
class?Test?{
private?static?Node?firstList,?secondList,?resultList;
private?static?void?input(Node?head)?throws?Exception?{
int?a;
int?b;
int?i;
Node?p?=?head;
BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(
System.in));
//?讀取一行信息
String?input?=?reader.readLine();
//?以空格為分隔符,轉換成數(shù)組
String[]?numbers?=?input.split("?");
for(i=0;inumbers.length;){
a?=?Integer.parseInt(numbers[i]);
b?=?Integer.parseInt(numbers[i+1]);
p.next?=?new?Node(a,?b);
p?=?p.next;
i+=2;
}
}
public?static?void?main(String[]?args)?throws?Exception?{
firstList?=?new?Node();
secondList?=?new?Node();
resultList?=?new?Node();
Node?p=resultList;
System.out.println("輸入第一個多項式");
input(firstList);
System.out.println("輸入第二個不等式");
input(secondList);
while(firstList.next!=nullsecondList.next!=null){
if(firstList.next.zssecondList.next.zs){
p.next=new?Node(firstList.next.xs,firstList.next.zs);
p=p.next;
firstList=firstList.next;
}else?if(firstList.next.zssecondList.next.zs){
p.next=new?Node(secondList.next.xs,secondList.next.zs);
p=p.next;
secondList=secondList.next;
}else{
p.next=new?Node(firstList.next.xs+secondList.next.xs,firstList.next.zs);
p=p.next;
firstList=firstList.next;
secondList=secondList.next;
}
}
if(firstList!=null){
p.next=firstList.next;
}
if(secondList!=null){
p.next=secondList.next;
}
p=resultList;
while(p.next!=null){
System.out.print(p.next.xs+"x^"+p.next.zs+"+");
p=p.next;
}
System.out.println();
}
}
public?class?Node?{
public?int?xs;//系數(shù)
public?int?zs;//指數(shù)
public?Node?next=null;//指向下一個
public?Node(int?a,int?b)?{
xs=a;
zs=b;
}
public?Node(){
}
}
答案
輸入第一個多項式
5 4 3 2 1 1
輸入第二個不等式
4 4 3 2 1 1
9x^4+6x^2+2x^1
#包括“stdio.h中”
typedef結構節(jié)點
{C,E / /節(jié)點的數(shù)據(jù)域,C為系數(shù)的多項式e多項式指數(shù)
結構節(jié)點下/ /節(jié)點的指針字段
} PN / /自定義的節(jié)點結構類型PN
PN * createPoly()/ /這個函數(shù)用于創(chuàng)建一個鏈表,返回值是一個節(jié)點的指針
{N,E,C;
PN *頭,* P / /定義頭結點指針頭節(jié)點的指針p
printf(“請輸入項目編號項目:“);
scanf的(”%d“,&N); / / n的值,無論是項目的數(shù)量
頭= P = PN / / * malloc的(大?。≒N));/ /頭,p指向頭節(jié)點(頭節(jié)點不必存儲的數(shù)據(jù))
P- = NULL; / /這里,創(chuàng)建一個空列表
( - )/ /循環(huán)n次
{
P- =新PN ;/ / * malloc的(如sizeof(PN));/ /動態(tài)分配新的節(jié)點,然后在鏈末端(尾插)
P = P-下;
/ / printf的(“CE”); / /到新的節(jié)點,添加數(shù)據(jù)
scanf的(“ %d月%d“,&P- C:P- E);
}
P- = NULL; / /指針域頁腳設置為空
返回頭; / /返回頭節(jié)點地址
}
無效printPoly(PN *頭)/ /這個函數(shù)是用來
{PN * P =頭下輸入鏈接的列表信息; / /用來遍歷鏈表節(jié)點指針P,P點的表頭
(P)/ /當p = NULL的表底,在周期結束
{printf(“請(%D,%D)”,P- C,P- E)/ /顯示當前節(jié)點的數(shù)據(jù)
P = P-; / / P點移動到下一個節(jié)點
}
printf的(“\ n”); / /輸出一個回車
}
的無效freePoly(PN *頭)/ /函數(shù)是用來摧毀的鏈表
{PN * P / /釋放節(jié)點(動態(tài)內存塊)
同時(頭)/ /頭= NULL(已經到了結束的表),在循環(huán)結束
{P =頭; / /讓p指向頭節(jié)點稱為
頭=頭下; / /指向頭移動到下一個節(jié)點/刪除(P)/ / P所指節(jié)點釋放(動態(tài)內存塊)
}
}的
PN * polyAdd的(PN公頃,PN * HB)/ /這個函數(shù)兩個多項式的總和
{C,E; / / C是多項式的系數(shù),e是多項式指數(shù)
PN * PA = HA-下一個* PB = HB-下,/ /?PA,PB用于遍歷兩個鏈表傳遞的參數(shù)(參數(shù)兩個鏈表的頭結點指針),讓我們稱呼他們?yōu)殒湵鞟B
* HC,* PC / / HC新列表頭的總和的兩個列表中的相應節(jié)點的節(jié)點,PC,用于遍歷新的列表,鏈接列表的稱之為C
HC = PC =新PN;
(PA |以pb計)/ /當兩個鏈表的遍歷完成循環(huán)停止
{
(PA (PB == NULL | | PA- E E))/ /取指數(shù)項鏈成一個鏈表或鏈接列表b遍歷完成后,執(zhí)行內容
,如果{C = PA- C;
E = PA- E;
PA = PA-下;
}
其他(PB (PA == NULL | | PA- E PB- E))/ /走索引就是少了一個項鏈成一個鏈表,鏈表的遍歷完成實施的內容,如果
{C = PB- C;
E = PB- E;
PB = PB-;
}
/ /指數(shù)等于執(zhí)行
{C = PA- C + PB- C;
E = PA- E;
PA = PA-下;
PB = PB-下;
}
(C)/ /添加一個鏈接到一個新的列表清單 BR / {
PC-下一個新的PN;
PC = PC-
PC - C = C;
PC- E = E; BR /}
}
PC-下一個= NULL;
回報HC / /返回一個新的列表頭節(jié)點的指針
}的
PN * mulxmul的(PN公頃PN HB)/ /這個函數(shù)是每個項目表關閉一次onexmul功能,并最終實現(xiàn)多項式乘法的a和b
{PN * T * HC,* PA = HA-“下;
PN * onexmul(PN * PA,PN * HB)/ /函數(shù)的聲明,因為下一個步驟是使用
PN * polyAdd的( PN *公頃,PN * HB)/ /函數(shù)聲明,因為下一個步驟是使用
T =新的PN,T - = NULL; / /存儲最終的結果鏈表,t為頭,該表姑且稱之為T臺上
(PA)/ /遍歷一個鏈表
{HC = onexmul(PA,HB); / / PA所指的項目表中的b表所有的項目都乘以(即多項式多項式B乘)
T = polyAdd(T,HC); / /將分別相乘的結果中添加
freePoly(HC); / /將調用onexmul功能生產破壞中間的鏈表,鏈表的項目已經在t鏈表
PA = PA-下;
}
回報噸; / / T-表頭結點指針返回
}
PN * onexmul的(* PA,PN PN * HB)/ /這個函數(shù)是用來PA所指的項目表中的b表項相乘(即多項式一個多項式B相乘)
{PN * HC,PC,PB = HB-; / / HC是新的列表頭節(jié)點,PC遍歷新的列表 BR / HC = PC = PN / / HC,PC指向頭節(jié)點
一段時間(以pb計)/ /遍歷b鏈接列表
{PC-下一步= PN / /創(chuàng)建一個新的鏈表節(jié)點
PC = PC - 下;
PC- C = PA- C * PB- C; / /到新的節(jié)點分配的系數(shù),系數(shù)等于乘以
PC- E = PA - E + PB- E / /指數(shù)指數(shù)總和等于
PB = PB-下;
}
PC - 下一步= NULL;
返回HC / /新的列表頭節(jié)點的指針返回
}
詮釋的main()
{ PN *下*,HB,HC;
freopen(“; poly.in”,“R”狀態(tài),stdin); / /只讀模式poly.in
freopen(“poly.txt “,”W“中,stdout); / /只寫模式打開poly.txt
公頃= createPoly()/ /創(chuàng)建一個新的鏈接列表,哈頭節(jié)點的指針(多項式)
printPoly醫(yī)管局總(公頃); / /輸出節(jié)點的指針鏈表信息
HB = createPoly()/ /創(chuàng)建一個新的鏈接列表,HB頭節(jié)點指針(多項式)
printPoly(HB); / /輸出HB頭節(jié)點的指針鏈表信息
HC = polyAdd(HA,HB)/ /多項式一個多項式B和結果,HC是頭節(jié)點的指針鏈表
printPoly(HC) /添加/輸出鏈表信息
freePoly(HC); / /銷毀鏈表的
HC = mulxmul(HA,HB)/ /多項式一個多項式B相乘的結果,HC頭節(jié)點的指針
printPoly(HC)/ /輸出鏈表的信息后乘以鏈表
freePoly(公頃); / /銷毀鏈表
freePoly(HB); / /銷毀鏈表
freePoly(HC); / /銷毀的鏈表
返回0;
}
OK,花了大量的時間來幫你寫下來筆記,完整的,完全一樣的原理和數(shù)學模型,它應該是能讀“,”流程圖“,相信,理解程序,它是難以劃清,嘗試下。
package?ba;
//線性表抽象數(shù)據(jù)類型的java接口定義
interface?List
{
public?boolean?isEmpty();?????????//接口方法1:判斷線性表是否為空
public?void?insert(int?i?,int?element)?throws?Exception;?//接口方法2:在線性表的指定位置插入數(shù)據(jù)元素
public?int?remove(int?i)??throws?Exception;?????//接口方法3:刪除線性表中指定位置的數(shù)據(jù)元素
public?int?getData(int?i)?throws?Exception;?????//接口方法4:獲取線性表中指定位置的數(shù)據(jù)元素
public?int?length();??????????//接口方法5:獲取線性表的長度(數(shù)據(jù)元素的個數(shù))
}
//順序表類SeqList,實現(xiàn)線性表接口
class?SeqList??implements?List?
{
//在實現(xiàn)接口的類中定義成員變量
private?int[]?listArray;??????//定義數(shù)組:listArray,用于保存線性表中的數(shù)據(jù)元素
final?int?defaultSize=10;??????//定義常量:defaultSize,用于指定線性表的默認長度
private?int?size;?????????//定義變量:size,用于描述線性表中的數(shù)據(jù)元素的個數(shù)(線性表的長度)
private?int?maxSize;???????//定義變量:maxSize,用于描述線性表中最大數(shù)據(jù)元素的個數(shù)(線性表的最大長度)
//在實現(xiàn)接口的類中定義成員方法
//構造方法
//定義函數(shù):initiate()
public?void?initiate(int?sz)
{
maxSize=sz;???????????
size=0;
listArray=new??int[sz];??//創(chuàng)建一個整型數(shù)組?。?!
}
public?SeqList()?????//不帶參數(shù)的構造方法
{
initiate(defaultSize);
}
public?SeqList(int?capacity)??//帶一個參數(shù)的構造方法
{
initiate(capacity);
}
//成員方法:清空線性表
public?void?clear()
{
this.size=0;
}
//實現(xiàn)?接口中定義的方法
public?boolean?isEmpty()?????????//接口方法1:判斷線性表是否為空
{
return?this.size==0;?//說明:==:是邏輯判斷是否相等,如果相等返回值布爾值:真?true(1),否則返回假?false?0
}
public?void?insert(int?index?,int?element)?throws?Exception?//接口方法2:在線性表的指定位置插入數(shù)據(jù)元素
//加載異常事務處理方法????
{?????
if(size==maxSize)
{
throw?new?Exception("順序表已滿,無法插入!");?//如果程序中需要將存在的異常事件拋出,則必須事先加載異常處理的方法
//拋出異常
}
if(index0?||?indexsize)
{
throw?new?Exception("參數(shù)錯誤!");
}
for(int?j=size;jindex;j--)
{
listArray[j]=listArray[j-1];
}
listArray[index]=element;
size++;?
}
public?int?remove(int?i)??throws?Exception?????//接口方法3:刪除線性表中指定位置的數(shù)據(jù)元素
{
if(size==0)
{
throw?new?Exception("順序表已空,無法刪除!");
}
if(i0?||?isize-1)
{
throw?new?Exception("參數(shù)錯誤!");
}
int?it?=listArray[i];
for(int?j=i;jsize-1;j++)
{
listArray[j]=listArray[j+1];
}
size--;
return?it;??//將刪除數(shù)據(jù)元素后新的數(shù)組??
}
//獲取線性表中指定位置的數(shù)據(jù)元素
public?int?getData(int?i)?throws?Exception?????//接口方法4:獲取線性表中指定位置的數(shù)據(jù)元素
{
return?listArray[i];
}
//求線性表的長度
public?int?length()??????????//接口方法5:獲取線性表的長度(數(shù)據(jù)元素的個數(shù))
{
return?size;
}
}
public?class?test?{???????//定義public類:(1)在創(chuàng)建項目時指定的類
public?static?void?main(String?args[])??????//(2)main方法應當在public類中
{
SeqList?seqList?=?new?SeqList(100);
//定義類的對象。在定義類的對象時,通過調用構造方法對類的成員變量進行賦值
//如果一個類中存在多個構造方法時,稱為構造方法重載。
//調用構造方法時,由系統(tǒng)根據(jù)所調用的構造方法的參數(shù)個數(shù)和數(shù)據(jù)類型自動調用與之相匹配的構造方法
int?n=10;
try???????//try語句中的內容是指:需要對程序運行的異常事件進行捕獲
{
for(int?i=0;i=n;i++)
{
seqList.insert(i,(i+1));?//通過類的對象調用類的成員方法
}
seqList.remove(4);
for(int?i=0;in;i++)
{
System.out.println(seqList.getData(i)+"?");
}
//請在此添加判斷線性表是否為空,如果為空,則提示用戶線性表為空,否則輸出線性表的長度
}
catch(Exception?e)???//catch語句的作用是:將try語句中捕獲的異常內容拋出
{
System.out.println(e.getMessage());
}
}
}
如何在這程序中添加
import java.util.ArrayList;
import java.util.List;
public class ListDemo {
public static void main(String[] args) {
int numLength = 10;
int deleteNum = 5;
ListInteger list = new ArrayListInteger();
init(numLength,list);
delete(deleteNum,list);
print(list);
}
private static void print(ListInteger list) {
for(int i=0;ilist.size();i++){
System.out.print(list.get(i) +"\t");
}
}
private static void delete(int deleteNum,ListInteger list) {
for (int i=0;ilist.size();i++){
if((int)list.get(i)==deleteNum){
list.remove(i);
}
}
}
private static void init(int numLength,ListInteger list) {
for(int i=1;i=numLength;i++){
list.add(i);
}
}
}
//當然你要是把你的代碼貼上來就更好了,可以幫忙找出問題,另外也可以知道你對java了解到哪個程度了呵,給出的幫助可能更實際一些