導航:首頁 > 源碼編譯 > java中的數據結構與演算法

java中的數據結構與演算法

發布時間:2023-01-09 06:01:51

java數據結構與演算法

/*給出一組數:1,4,7,10,。。。,3N+1,n為正整數 找出下一個數和第十個數
* 寫出偽代碼和Java代碼 謝謝啦*/
public static String getNumber(int number){
//定義一個初始值0
判斷如果number為0或是負數
return "您輸入的不對請輸入正整數(除0意外的自然數)";
否則就進行運算
根據算式 3*(number-1)+1進行運算
返回運算結果
}
}

public static void main(String [] args){
列印輸出
}

/*給出一組數:1,4,7,10,。。。,3N+1,n為正整數 找出下一個數和第十個數
* 寫出偽代碼和Java代碼 謝謝啦*/
public static String getNumber(int number){
int result = 0;
if(number == 0 || number < 0){
return "您輸入的不對請輸入正整數(除0意外的自然數)";
}else{
result = 3*(number-1)+1;
return ""+result;
}
}

public static void main(String [] args){
System.out.println("第五項:"+Test1.getNumber(5));
System.out.println("第十項:"+Test1.getNumber(10));
}

希望對您有幫助

Ⅱ Java 與 演算法+數據結構 (100分)

說數據結構沒用那是不可能的,但是要看你做什麼了。

比如說你要血java,如果你想搞網站方面的話就簡單了。

數據結構基本可以不用學,因為在web應用中,能用到的演算法的地方少之又少,幾乎就那麼幾個,想記不住都難。

但是如果你要往軟體方面和手軟方面發展的話就要學一部分了,但是這東西學是學不到的,能學到的只不過是思路,到時候自己發揮一下,想個演算法就行了,演算法這東西說難不難,難的東西有,但是沒有你能用到的。

像你這樣的情況我想說兩點:

首先,說你想從事演算法類的工作,那麼選擇什麼樣的語言都是一樣的,演算法肯定有,但是用到的都不多。剛進公司的時候一般是用不到演算法的,因為演算法都是別人想的,你也許有好的演算法,但是別人不一定採用,但是你的演算法基礎不要丟掉,因為等你當了項目經理後這個是必不可少的。

其次,你要知道,在學計算機的路上,很少有人能學什麼就做什麼,大家都在被社會潮流推動,想要不掉隊就只能隨波逐流。因為畢竟我們都不想一輩子寫代碼。大家都是拿這東西做個跳板。

學java的路很長,但是也很有趣,希望你能學好。我想以你的演算法基礎,以後想成為專業精英不是問題。加油吧。

Ⅲ java(樹的內容)演算法與數據結構

其實有兩種方式:
第一種就是遞歸 就像現在比較老的樹形菜單。這種方式應該string類型應該是存不了的。就是自定義一個類型A 裡面有一個成員變數 list<A>。 這種結構就是list裡面嵌套list,你有多少級就有多少層。
第二種其實要做處理,就是把原數據按一定規則排序放到一個list裡面,這裡面不會再嵌套list。list排完序就如你的效果圖一樣。第一個 一級節點 》》其子節點;然後第二個一級節點》》其子節點,etc。 但是這種結構要有存的時候要循環一遍排成上述的順序,取的時候還需要判斷哪個是下一個不同級節點的開始。

js前台展示比較簡單,根據父id直接添加就行了,原數據什麼都不用做。但是java里這種方式不行。

Ⅳ 學java 的數據結構和演算法哪本書好

數據結構和演算法 是獨立於編程語言的,不用糾結於語言
可以看看 《大話數據結構》 ,用來入門不錯
《Java數據結構和演算法》,這本是用java寫的

Ⅳ 新手初學Java有必要去學習數據結構與演算法嗎

還是有些必要的,大公司筆試面試基本都是靠計算機網路及數據結構與演算法。
建議找些基礎的演算法如排序查找等入門就可以了,java新人用不到多深層次的演算法,
新人初學Java的話建議還是講基礎知識弄通弄透比較好。

Ⅵ 《數據結構與演算法分析Java語言描述(英文版·第3版)》pdf下載在線閱讀,求百度網盤雲資源

《數據結構與演算法分析》(韋斯 (Mark Allen Weiss))電子書網盤下載免費在線閱讀

資源鏈接:

鏈接:

提取碼:yu5y

書名:數據結構與演算法分析

作者:韋斯 (Mark Allen Weiss)

出版社:機械工業出版社

出版年份:2013-2-1

頁數:614

內容簡介:

本書是國外數據結構與演算法分析方面的經典教材,使用卓越的Java編程語言作為實現工具討論了數據結構(組織大量數據的方法)和演算法分析(對演算法運行時間的估計)。

隨著計算機速度的不斷增加和功能的日益強大,人們對有效編程和演算法分析的要求也不斷增長。本書將演算法分析與最有效率的Java程序的開發有機地結合起來,深入分析每種演算法,並細致講解精心構造程序的方法,內容全面、縝密嚴格。

第3版的主要更新如下:

 第4章包含AVL樹刪除演算法的實現。

 第5章進行了全面修訂和擴充,現在包含兩種較新的演算法—cuckoo散列和hopscotch散列。

 第7章包含基數排序的相關內容,並給出了下界證明。

 第12章增加了後綴樹和後綴數組的相關材料,包括Karkkainen和Sanders的線性時間後綴數組構造演算法。

 更新書中的代碼,使用了Java 7中的菱形運算符。

作者簡介:

Mark Allen Weiss佛羅里達國際大學計算與信息科學學院教授、副院長,本科教育主任和研究生教育主任。他於1987年獲得普林斯頓大學計算機科學博士學位,師從Bob Sedgewick。 他曾經擔任全美AP(Advanced Placement)考試計算機學科委員會的主席(2000—2004)。他的主要研究興趣是數據結構、演算法和教育學。

Ⅶ java數據結構和演算法

首先看存儲方式, 這個list, 只保存一個link的引用, 作為鏈表的頭, 然後通過這個頭.next, 得到第二個, 第二個.next得到第三個, 一次類推, 知道.next == null 的時候, 說明list結束.

那麼現在分兩種情況看:
1. 當當前鏈表裡面沒有元素的時候, 那麼就添加一個, 然後讓它的next = first, 也就是為null, 那麼鏈表在遍歷的時候, 訪問了第一個, 然後第一個.next == null, 鏈表就到頭了.

2.當當前鏈表裡面有元素的時候, 那麼因為方法叫做firstinsert, 也就是添加頭元素, 所以先聲明一個link = newlink, 然後讓newlink, 的next 指向之前list.first素, 那麼現在newlink就變成了第一個, 而之前那個變成了第二個, 然後再把newlink的引用賦給first, 這樣, 鏈表的頭就變成了newlink, 達到了first insert的目的.

first的引用就是我上面分析的兩種情況, 一種是沒有元素就是null, 另一種情況是有, 變成了第二個, 因為這個list要有結束的位置, 否則就無限長了, 結束的條件就是遍歷list的時候, 最後一個元素.next == null, 這樣list就停住了我大體畫個圖吧, 你看看:

第一種情況: 當隊列中沒有元素的時候
列表中什麼都沒有 : [ (head)null ]
有一個newlink {nl}
執行完newlink.next=first; {nl} -> null
執行完first=newlink; [ (head){nl} -> null ];
這樣list的頭就是newlist, 只有它一個元素.

第二中情況: 當隊列中有元素的時候:
假設當前頭元素為{oldhead}
[ (head){oldhead} -> {obj1} -> {obj2} ... {objn} -> null]
有一個newlink {nl}
執行完newlink.next=first; {nl} -> {oldhead}
執行完first=newlink; [ (head){nl} -> {oldhead} -> {obj1} -> {obj2} ... {objn} -> null]
這樣list的頭就是newlist, 而oldhead就變成了第二個元素, 後面的元素以此類推.

Ⅷ JAVA數據結構與演算法

給你寫了答案如下,有問題再追問。

  1. B

  2. A

  3. C

  4. 確切性

  5. 3

  6. infexOf

  7. 隊頭指針指向隊尾

  8. 順序表:查找方便,但插入困難;

    鏈表:查找困難,但插入方便。

  9. //最大值
    publicstaticintgetMax(intn,int[]arr){//n是數組最後一個元素的index
    if(n==0)
    returnarr[0];
    if(arr[n]>getMax(n-1,arr))
    returnarr[n];
    returngetMax(n-1,arr);
    }
    //平均值
    publicstaticintgetAverage(intn,int[]arr){//n是數組最後一個元素的index
    if(n==1)
    returnarr[0];
    return(arr[n]+getAverage(n-1,arr)*(n-1))/n;
    }
  10. //刪除節點
    publicstaticNodermNode(Nodehead,Nodenode){
    Nodetemp=head;
    while(temp.next!=null){
    if(temp.next==node){
    temp.next=node.next;
    break;
    }
    else
    temp=temp.next;
    }
    returnhead;
    }
    //數組元素逆置
    publicstaticint[]inverseArray(int[]arr){
    intstart=0;
    intend=arr.length-1;

    for(;start<arr.length/2;start++,end--){
    inttemp=arr[start];
    arr[start]=arr[end];
    arr[end]=temp;
    }
    returnarr;

Ⅸ java數據結構與演算法分析

於之前面試android的時候考到了很多關於java的知識,所以這次重溫數據結構知識就打算用java來學習,畢竟android是以java為基礎的,而且我現在學習的j2ee架構也是以java為基礎的。

java中的類就是對現實世界的對象的一種抽象,例如人就是一個類別,人有名字,聯系電話,住址等成員屬性,人擁有說話,吃飯,走路等成員方法。類就是這樣,定義了一種對象,它有什麼,會做什麼。

繼承——子類就是父類的一種特定類別。例如學生就是人的子類,學生屬於人,是特定的一類人。所以我們讓學生繼承人,這樣學生可以擁有人的屬性和方法,也就是說,學生也有了名字,聯系電話,住址等成員屬性,擁有說話,吃飯,走路等成員方法。但是學生還有特定的一些方法(讀書,上課),或者特定的一些屬性(學號,年級),這些可以添加在子類中。

因為每個子類都屬於父類,例如每個學生都屬於人,所以可以用父類來引用子類的對象:People p = new Student();反過來不行。

java中一個類只能繼承一個父類,也就是單繼承。

但一個類可以實現多個介面,間接地實現了多繼承。介面就是一系列方法的聲明,沒有實現。於之前面試android的時候考到了很多關於java的知識,所以這次重溫數據結構知識就打算用java來學習,畢竟android是以java為基礎的,而且我現在學習的j2ee架構也是以java為基礎的。

java中的類就是對現實世界的對象的一種抽象,例如人就是一個類別,人有名字,聯系電話,住址等成員屬性,人擁有說話,吃飯,走路等成員方法。類就是這樣,定義了一種對象,它有什麼,會做什麼。

繼承——子類就是父類的一種特定類別。例如學生就是人的子類,學生屬於人,是特定的一類人。所以我們讓學生繼承人,這樣學生可以擁有人的屬性和方法,也就是說,學生也有了名字,聯系電話,住址等成員屬性,擁有說話,吃飯,走路等成員方法。但是學生還有特定的一些方法(讀書,上課),或者特定的一些屬性(學號,年級),這些可以添加在子類中。

因為每個子類都屬於父類,例如每個學生都屬於人,所以可以用父類來引用子類的對象:People p = new Student();反過來不行。

java中一個類只能繼承一個父類,也就是單繼承。

但一個類可以實現多個介面,間接地實現了多繼承。介面就是一系列方

閱讀全文

與java中的數據結構與演算法相關的資料

熱點內容
演算法如何規制 瀏覽:866
單片機繼電器驅動 瀏覽:649
小土豆編程軟體下載 瀏覽:153
單片機opencv 瀏覽:255
千鋒python人工智慧培訓 瀏覽:856
合理的文件夾劃分 瀏覽:258
十點讀書app哪裡下載 瀏覽:964
uu跑腿押金上app在哪裡解約 瀏覽:37
華為如何將app移到桌面 瀏覽:597
阿里安卓面試演算法題 瀏覽:705
語文知識手冊pdf 瀏覽:841
為什麼安卓手機oled屏很白很亮 瀏覽:252
如何找回iphone手機隱藏的app 瀏覽:21
linuxc多進程 瀏覽:649
android飛行游戲 瀏覽:965
數據挖掘常見演算法 瀏覽:135
python單實例化 瀏覽:351
str中python 瀏覽:89
java的equals用法 瀏覽:845
奧維雲伺服器怎麼開通 瀏覽:171