線性表java代碼 線性表基本操作代碼

java關(guān)于線性表的編程

package?Test;

創(chuàng)新互聯(lián)公司專注于金壇企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),成都做商城網(wǎng)站。金壇網(wǎng)站建設(shè)公司,為金壇等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(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("輸入第一個(gè)多項(xiàng)式");

input(firstList);

System.out.println("輸入第二個(gè)不等式");

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;//指向下一個(gè)

public?Node(int?a,int?b)?{

xs=a;

zs=b;

}

public?Node(){

}

}

答案

輸入第一個(gè)多項(xiàng)式

5 4 3 2 1 1

輸入第二個(gè)不等式

4 4 3 2 1 1

9x^4+6x^2+2x^1

多項(xiàng)式求導(dǎo)問(wèn)題(線性表) 怎么用java語(yǔ)言編寫啊 急用?。?/h2>

#包括“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()/ /這個(gè)函數(shù)用于創(chuàng)建一個(gè)鏈表,返回值是一個(gè)節(jié)點(diǎn)的指針

{N,E,C;

PN *頭,* P / /定義頭結(jié)點(diǎn)指針頭節(jié)點(diǎn)的指針p

printf(“請(qǐng)輸入項(xiàng)目編號(hào)項(xiàng)目:“);

scanf的(”%d“,&N); / / n的值,無(wú)論是項(xiàng)目的數(shù)量

頭= P = PN / / * malloc的(大小(PN));/ /頭,p指向頭節(jié)點(diǎn)(頭節(jié)點(diǎn)不必存儲(chǔ)的數(shù)據(jù))

P- = NULL; / /這里,創(chuàng)建一個(gè)空列表

( - )/ /循環(huán)n次

{

P- =新PN ;/ / * malloc的(如sizeof(PN));/ /動(dòng)態(tài)分配新的節(jié)點(diǎn),然后在鏈末端(尾插)

P = P-下;

/ / printf的(“CE”); / /到新的節(jié)點(diǎn),添加數(shù)據(jù)

scanf的(“ %d月%d“,&P- C:P- E);

}

P- = NULL; / /指針域頁(yè)腳設(shè)置為空

返回頭; / /返回頭節(jié)點(diǎn)地址

}

無(wú)效printPoly(PN *頭)/ /這個(gè)函數(shù)是用來(lái)

{PN * P =頭下輸入鏈接的列表信息; / /用來(lái)遍歷鏈表節(jié)點(diǎn)指針P,P點(diǎn)的表頭

(P)/ /當(dāng)p = NULL的表底,在周期結(jié)束

{printf(“請(qǐng)(%D,%D)”,P- C,P- E)/ /顯示當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)

P = P-; / / P點(diǎn)移動(dòng)到下一個(gè)節(jié)點(diǎn)

}

printf的(“\ n”); / /輸出一個(gè)回車

}

的無(wú)效freePoly(PN *頭)/ /函數(shù)是用來(lái)摧毀的鏈表

{PN * P / /釋放節(jié)點(diǎn)(動(dòng)態(tài)內(nèi)存塊)

同時(shí)(頭)/ /頭= NULL(已經(jīng)到了結(jié)束的表),在循環(huán)結(jié)束

{P =頭; / /讓p指向頭節(jié)點(diǎn)稱為

頭=頭下; / /指向頭移動(dòng)到下一個(gè)節(jié)點(diǎn)/刪除(P)/ / P所指節(jié)點(diǎn)釋放(動(dòng)態(tài)內(nèi)存塊)

}

}的

PN * polyAdd的(PN公頃,PN * HB)/ /這個(gè)函數(shù)兩個(gè)多項(xiàng)式的總和

{C,E; / / C是多項(xiàng)式的系數(shù),e是多項(xiàng)式指數(shù)

PN * PA = HA-下一個(gè)* PB = HB-下,/ /?PA,PB用于遍歷兩個(gè)鏈表傳遞的參數(shù)(參數(shù)兩個(gè)鏈表的頭結(jié)點(diǎn)指針),讓我們稱呼他們?yōu)殒湵鞟B

* HC,* PC / / HC新列表頭的總和的兩個(gè)列表中的相應(yīng)節(jié)點(diǎn)的節(jié)點(diǎn),PC,用于遍歷新的列表,鏈接列表的稱之為C

HC = PC =新PN;

(PA |以pb計(jì))/ /當(dāng)兩個(gè)鏈表的遍歷完成循環(huán)停止

{

(PA (PB == NULL | | PA- E E))/ /取指數(shù)項(xiàng)鏈成一個(gè)鏈表或鏈接列表b遍歷完成后,執(zhí)行內(nèi)容

,如果{C = PA- C;

E = PA- E;

PA = PA-下;

}

其他(PB (PA == NULL | | PA- E PB- E))/ /走索引就是少了一個(gè)項(xiàng)鏈成一個(gè)鏈表,鏈表的遍歷完成實(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)/ /添加一個(gè)鏈接到一個(gè)新的列表清單 BR / {

PC-下一個(gè)新的PN;

PC = PC-

PC - C = C;

PC- E = E; BR /}

}

PC-下一個(gè)= NULL;

回報(bào)HC / /返回一個(gè)新的列表頭節(jié)點(diǎn)的指針

}的

PN * mulxmul的(PN公頃PN HB)/ /這個(gè)函數(shù)是每個(gè)項(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)橄乱粋€(gè)步驟是使用

PN * polyAdd的( PN *公頃,PN * HB)/ /函數(shù)聲明,因?yàn)橄乱粋€(gè)步驟是使用

T =新的PN,T - = NULL; / /存儲(chǔ)最終的結(jié)果鏈表,t為頭,該表姑且稱之為T臺(tái)上

(PA)/ /遍歷一個(gè)鏈表

{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-下;

}

回報(bào)噸; / / T-表頭結(jié)點(diǎn)指針?lè)祷?/p>

}

PN * onexmul的(* PA,PN PN * HB)/ /這個(gè)函數(shù)是用來(lái)PA所指的項(xiàng)目表中的b表項(xiàng)相乘(即多項(xiàng)式一個(gè)多項(xiàng)式B相乘)

{PN * HC,PC,PB = HB-; / / HC是新的列表頭節(jié)點(diǎn),PC遍歷新的列表 BR / HC = PC = PN / / HC,PC指向頭節(jié)點(diǎn)

一段時(shí)間(以pb計(jì))/ /遍歷b鏈接列表

{PC-下一步= PN / /創(chuàng)建一個(gè)新的鏈表節(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)的指針?lè)祷?/p>

}

詮釋的main()

{ PN *下*,HB,HC;

freopen(“; poly.in”,“R”狀態(tài),stdin); / /只讀模式poly.in

freopen(“poly.txt “,”W“中,stdout); / /只寫模式打開(kāi)poly.txt

公頃= createPoly()/ /創(chuàng)建一個(gè)新的鏈接列表,哈頭節(jié)點(diǎn)的指針(多項(xiàng)式)

printPoly醫(yī)管局總(公頃); / /輸出節(jié)點(diǎn)的指針鏈表信息

HB = createPoly()/ /創(chuàng)建一個(gè)新的鏈接列表,HB頭節(jié)點(diǎn)指針(多項(xiàng)式)

printPoly(HB); / /輸出HB頭節(jié)點(diǎn)的指針鏈表信息

HC = polyAdd(HA,HB)/ /多項(xiàng)式一個(gè)多項(xiàng)式B和結(jié)果,HC是頭節(jié)點(diǎn)的指針鏈表

printPoly(HC) /添加/輸出鏈表信息

freePoly(HC); / /銷毀鏈表的

HC = mulxmul(HA,HB)/ /多項(xiàng)式一個(gè)多項(xiàng)式B相乘的結(jié)果,HC頭節(jié)點(diǎn)的指針

printPoly(HC)/ /輸出鏈表的信息后乘以鏈表

freePoly(公頃); / /銷毀鏈表

freePoly(HB); / /銷毀鏈表

freePoly(HC); / /銷毀的鏈表

返回0;

}

OK,花了大量的時(shí)間來(lái)幫你寫下來(lái)筆記,完整的,完全一樣的原理和數(shù)學(xué)模型,它應(yīng)該是能讀“,”流程圖“,相信,理解程序,它是難以劃清,嘗試下。

JAVA如何添加判斷線性表為0否則輸出線性表長(zhǎ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:獲取線性表的長(zhǎng)度(數(shù)據(jù)元素的個(gè)數(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)長(zhǎng)度

private?int?size;?????????//定義變量:size,用于描述線性表中的數(shù)據(jù)元素的個(gè)數(shù)(線性表的長(zhǎng)度)

private?int?maxSize;???????//定義變量:maxSize,用于描述線性表中最大數(shù)據(jù)元素的個(gè)數(shù)(線性表的最大長(zhǎng)度)

//在實(shí)現(xiàn)接口的類中定義成員方法

//構(gòu)造方法

//定義函數(shù):initiate()

public?void?initiate(int?sz)

{

maxSize=sz;???????????

size=0;

listArray=new??int[sz];??//創(chuàng)建一個(gè)整型數(shù)組?。?!

}

public?SeqList()?????//不帶參數(shù)的構(gòu)造方法

{

initiate(defaultSize);

}

public?SeqList(int?capacity)??//帶一個(gè)參數(shù)的構(gòu)造方法

{

initiate(capacity);

}

//成員方法:清空線性表

public?void?clear()

{

this.size=0;

}

//實(shí)現(xiàn)?接口中定義的方法

public?boolean?isEmpty()?????????//接口方法1:判斷線性表是否為空

{

return?this.size==0;?//說(shuō)明:==:是邏輯判斷是否相等,如果相等返回值布爾值:真?true(1),否則返回假?false?0

}

public?void?insert(int?index?,int?element)?throws?Exception?//接口方法2:在線性表的指定位置插入數(shù)據(jù)元素

//加載異常事務(wù)處理方法????

{?????

if(size==maxSize)

{

throw?new?Exception("順序表已滿,無(wú)法插入!");?//如果程序中需要將存在的異常事件拋出,則必須事先加載異常處理的方法

//拋出異常

}

if(index0?||?indexsize)

{

throw?new?Exception("參數(shù)錯(cuò)誤!");

}

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("順序表已空,無(wú)法刪除!");

}

if(i0?||?isize-1)

{

throw?new?Exception("參數(shù)錯(cuò)誤!");

}

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];

}

//求線性表的長(zhǎng)度

public?int?length()??????????//接口方法5:獲取線性表的長(zhǎng)度(數(shù)據(jù)元素的個(gè)數(shù))

{

return?size;

}

}

public?class?test?{???????//定義public類:(1)在創(chuàng)建項(xiàng)目時(shí)指定的類

public?static?void?main(String?args[])??????//(2)main方法應(yīng)當(dāng)在public類中

{

SeqList?seqList?=?new?SeqList(100);

//定義類的對(duì)象。在定義類的對(duì)象時(shí),通過(guò)調(diào)用構(gòu)造方法對(duì)類的成員變量進(jìn)行賦值

//如果一個(gè)類中存在多個(gè)構(gòu)造方法時(shí),稱為構(gòu)造方法重載。

//調(diào)用構(gòu)造方法時(shí),由系統(tǒng)根據(jù)所調(diào)用的構(gòu)造方法的參數(shù)個(gè)數(shù)和數(shù)據(jù)類型自動(dòng)調(diào)用與之相匹配的構(gòu)造方法

int?n=10;

try???????//try語(yǔ)句中的內(nèi)容是指:需要對(duì)程序運(yùn)行的異常事件進(jìn)行捕獲

{

for(int?i=0;i=n;i++)

{

seqList.insert(i,(i+1));?//通過(guò)類的對(duì)象調(diào)用類的成員方法

}

seqList.remove(4);

for(int?i=0;in;i++)

{

System.out.println(seqList.getData(i)+"?");

}

//請(qǐng)?jiān)诖颂砑优袛嗑€性表是否為空,如果為空,則提示用戶線性表為空,否則輸出線性表的長(zhǎng)度

}

catch(Exception?e)???//catch語(yǔ)句的作用是:將try語(yǔ)句中捕獲的異常內(nèi)容拋出

{

System.out.println(e.getMessage());

}

}

}

如何在這程序中添加

java建立一個(gè)線性表

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)然你要是把你的代碼貼上來(lái)就更好了,可以幫忙找出問(wèn)題,另外也可以知道你對(duì)java了解到哪個(gè)程度了呵,給出的幫助可能更實(shí)際一些

文章題目:線性表java代碼 線性表基本操作代碼
鏈接分享:http://bm7419.com/article18/ddejddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、搜索引擎優(yōu)化、建站公司域名注冊(cè)、網(wǎng)站導(dǎo)航、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化