重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
package?Test;
創(chuàng)新互聯(lián)公司專注于金壇企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),成都做商城網(wǎng)站。金壇網(wǎng)站建設(shè)公司,為金壇等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
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();
//?以空格為分隔符,轉(zhuǎn)換成數(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("輸入第一個多項(xiàng)式");
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(){
}
}
答案
輸入第一個多項(xiàng)式
5 4 3 2 1 1
輸入第二個不等式
4 4 3 2 1 1
9x^4+6x^2+2x^1
#包括“stdio.h中”
typedef結(jié)構(gòu)節(jié)點(diǎn)
{C,E / /節(jié)點(diǎn)的數(shù)據(jù)域,C為系數(shù)的多項(xiàng)式e多項(xiàng)式指數(shù)
結(jié)構(gòu)節(jié)點(diǎn)下/ /節(jié)點(diǎn)的指針字段
} PN / /自定義的節(jié)點(diǎn)結(jié)構(gòu)類型PN
PN * createPoly()/ /這個函數(shù)用于創(chuàng)建一個鏈表,返回值是一個節(jié)點(diǎn)的指針
{N,E,C;
PN *頭,* P / /定義頭結(jié)點(diǎn)指針頭節(jié)點(diǎn)的指針p
printf(“請輸入項(xiàng)目編號項(xiàng)目:“);
scanf的(”%d“,&N); / / n的值,無論是項(xiàng)目的數(shù)量
頭= P = PN / / * malloc的(大小(PN));/ /頭,p指向頭節(jié)點(diǎn)(頭節(jié)點(diǎn)不必存儲的數(shù)據(jù))
P- = NULL; / /這里,創(chuàng)建一個空列表
( - )/ /循環(huán)n次
{
P- =新PN ;/ / * malloc的(如sizeof(PN));/ /動態(tài)分配新的節(jié)點(diǎn),然后在鏈末端(尾插)
P = P-下;
/ / printf的(“CE”); / /到新的節(jié)點(diǎn),添加數(shù)據(jù)
scanf的(“ %d月%d“,&P- C:P- E);
}
P- = NULL; / /指針域頁腳設(shè)置為空
返回頭; / /返回頭節(jié)點(diǎn)地址
}
無效printPoly(PN *頭)/ /這個函數(shù)是用來
{PN * P =頭下輸入鏈接的列表信息; / /用來遍歷鏈表節(jié)點(diǎn)指針P,P點(diǎn)的表頭
(P)/ /當(dāng)p = NULL的表底,在周期結(jié)束
{printf(“請(%D,%D)”,P- C,P- E)/ /顯示當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)
P = P-; / / P點(diǎn)移動到下一個節(jié)點(diǎn)
}
printf的(“\ n”); / /輸出一個回車
}
的無效freePoly(PN *頭)/ /函數(shù)是用來摧毀的鏈表
{PN * P / /釋放節(jié)點(diǎn)(動態(tài)內(nèi)存塊)
同時(頭)/ /頭= NULL(已經(jīng)到了結(jié)束的表),在循環(huán)結(jié)束
{P =頭; / /讓p指向頭節(jié)點(diǎn)稱為
頭=頭下; / /指向頭移動到下一個節(jié)點(diǎn)/刪除(P)/ / P所指節(jié)點(diǎn)釋放(動態(tài)內(nèi)存塊)
}
}的
PN * polyAdd的(PN公頃,PN * HB)/ /這個函數(shù)兩個多項(xiàng)式的總和
{C,E; / / C是多項(xiàng)式的系數(shù),e是多項(xiàng)式指數(shù)
PN * PA = HA-下一個* PB = HB-下,/ /?PA,PB用于遍歷兩個鏈表傳遞的參數(shù)(參數(shù)兩個鏈表的頭結(jié)點(diǎn)指針),讓我們稱呼他們?yōu)殒湵鞟B
* HC,* PC / / HC新列表頭的總和的兩個列表中的相應(yīng)節(jié)點(diǎn)的節(jié)點(diǎn),PC,用于遍歷新的列表,鏈接列表的稱之為C
HC = PC =新PN;
(PA |以pb計)/ /當(dāng)兩個鏈表的遍歷完成循環(huán)停止
{
(PA (PB == NULL | | PA- E E))/ /取指數(shù)項(xiàng)鏈成一個鏈表或鏈接列表b遍歷完成后,執(zhí)行內(nèi)容
,如果{C = PA- C;
E = PA- E;
PA = PA-下;
}
其他(PB (PA == NULL | | PA- E PB- E))/ /走索引就是少了一個項(xiàng)鏈成一個鏈表,鏈表的遍歷完成實(shí)施的內(nèi)容,如果
{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é)點(diǎn)的指針
}的
PN * mulxmul的(PN公頃PN HB)/ /這個函數(shù)是每個項(xiàng)目表關(guān)閉一次onexmul功能,并最終實(shí)現(xiàn)多項(xiàng)式乘法的a和b
{PN * T * HC,* PA = HA-“下;
PN * onexmul(PN * PA,PN * HB)/ /函數(shù)的聲明,因?yàn)橄乱粋€步驟是使用
PN * polyAdd的( PN *公頃,PN * HB)/ /函數(shù)聲明,因?yàn)橄乱粋€步驟是使用
T =新的PN,T - = NULL; / /存儲最終的結(jié)果鏈表,t為頭,該表姑且稱之為T臺上
(PA)/ /遍歷一個鏈表
{HC = onexmul(PA,HB); / / PA所指的項(xiàng)目表中的b表所有的項(xiàng)目都乘以(即多項(xiàng)式多項(xiàng)式B乘)
T = polyAdd(T,HC); / /將分別相乘的結(jié)果中添加
freePoly(HC); / /將調(diào)用onexmul功能生產(chǎn)破壞中間的鏈表,鏈表的項(xiàng)目已經(jīng)在t鏈表
PA = PA-下;
}
回報噸; / / T-表頭結(jié)點(diǎn)指針返回
}
PN * onexmul的(* PA,PN PN * HB)/ /這個函數(shù)是用來PA所指的項(xiàng)目表中的b表項(xiàng)相乘(即多項(xiàng)式一個多項(xiàng)式B相乘)
{PN * HC,PC,PB = HB-; / / HC是新的列表頭節(jié)點(diǎn),PC遍歷新的列表 BR / HC = PC = PN / / HC,PC指向頭節(jié)點(diǎn)
一段時間(以pb計)/ /遍歷b鏈接列表
{PC-下一步= PN / /創(chuàng)建一個新的鏈表節(jié)點(diǎn)
PC = PC - 下;
PC- C = PA- C * PB- C; / /到新的節(jié)點(diǎn)分配的系數(shù),系數(shù)等于乘以
PC- E = PA - E + PB- E / /指數(shù)指數(shù)總和等于
PB = PB-下;
}
PC - 下一步= NULL;
返回HC / /新的列表頭節(jié)點(diǎn)的指針返回
}
詮釋的main()
{ PN *下*,HB,HC;
freopen(“; poly.in”,“R”狀態(tài),stdin); / /只讀模式poly.in
freopen(“poly.txt “,”W“中,stdout); / /只寫模式打開poly.txt
公頃= createPoly()/ /創(chuàng)建一個新的鏈接列表,哈頭節(jié)點(diǎn)的指針(多項(xiàng)式)
printPoly醫(yī)管局總(公頃); / /輸出節(jié)點(diǎn)的指針鏈表信息
HB = createPoly()/ /創(chuàng)建一個新的鏈接列表,HB頭節(jié)點(diǎn)指針(多項(xiàng)式)
printPoly(HB); / /輸出HB頭節(jié)點(diǎn)的指針鏈表信息
HC = polyAdd(HA,HB)/ /多項(xiàng)式一個多項(xiàng)式B和結(jié)果,HC是頭節(jié)點(diǎn)的指針鏈表
printPoly(HC) /添加/輸出鏈表信息
freePoly(HC); / /銷毀鏈表的
HC = mulxmul(HA,HB)/ /多項(xiàng)式一個多項(xiàng)式B相乘的結(jié)果,HC頭節(jié)點(diǎn)的指針
printPoly(HC)/ /輸出鏈表的信息后乘以鏈表
freePoly(公頃); / /銷毀鏈表
freePoly(HB); / /銷毀鏈表
freePoly(HC); / /銷毀的鏈表
返回0;
}
OK,花了大量的時間來幫你寫下來筆記,完整的,完全一樣的原理和數(shù)學(xué)模型,它應(yīng)該是能讀“,”流程圖“,相信,理解程序,它是難以劃清,嘗試下。
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,實(shí)現(xiàn)線性表接口
class?SeqList??implements?List?
{
//在實(shí)現(xiàn)接口的類中定義成員變量
private?int[]?listArray;??????//定義數(shù)組:listArray,用于保存線性表中的數(shù)據(jù)元素
final?int?defaultSize=10;??????//定義常量:defaultSize,用于指定線性表的默認(rèn)長度
private?int?size;?????????//定義變量:size,用于描述線性表中的數(shù)據(jù)元素的個數(shù)(線性表的長度)
private?int?maxSize;???????//定義變量:maxSize,用于描述線性表中最大數(shù)據(jù)元素的個數(shù)(線性表的最大長度)
//在實(shí)現(xiàn)接口的類中定義成員方法
//構(gòu)造方法
//定義函數(shù):initiate()
public?void?initiate(int?sz)
{
maxSize=sz;???????????
size=0;
listArray=new??int[sz];??//創(chuàng)建一個整型數(shù)組!!!
}
public?SeqList()?????//不帶參數(shù)的構(gòu)造方法
{
initiate(defaultSize);
}
public?SeqList(int?capacity)??//帶一個參數(shù)的構(gòu)造方法
{
initiate(capacity);
}
//成員方法:清空線性表
public?void?clear()
{
this.size=0;
}
//實(shí)現(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ù)元素
//加載異常事務(wù)處理方法????
{?????
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)建項(xiàng)目時指定的類
public?static?void?main(String?args[])??????//(2)main方法應(yīng)當(dāng)在public類中
{
SeqList?seqList?=?new?SeqList(100);
//定義類的對象。在定義類的對象時,通過調(diào)用構(gòu)造方法對類的成員變量進(jìn)行賦值
//如果一個類中存在多個構(gòu)造方法時,稱為構(gòu)造方法重載。
//調(diào)用構(gòu)造方法時,由系統(tǒng)根據(jù)所調(diào)用的構(gòu)造方法的參數(shù)個數(shù)和數(shù)據(jù)類型自動調(diào)用與之相匹配的構(gòu)造方法
int?n=10;
try???????//try語句中的內(nèi)容是指:需要對程序運(yùn)行的異常事件進(jìn)行捕獲
{
for(int?i=0;i=n;i++)
{
seqList.insert(i,(i+1));?//通過類的對象調(diào)用類的成員方法
}
seqList.remove(4);
for(int?i=0;in;i++)
{
System.out.println(seqList.getData(i)+"?");
}
//請?jiān)诖颂砑优袛嗑€性表是否為空,如果為空,則提示用戶線性表為空,否則輸出線性表的長度
}
catch(Exception?e)???//catch語句的作用是:將try語句中捕獲的異常內(nèi)容拋出
{
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);
}
}
}
//當(dāng)然你要是把你的代碼貼上來就更好了,可以幫忙找出問題,另外也可以知道你對java了解到哪個程度了呵,給出的幫助可能更實(shí)際一些