/*給出一組數: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))電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
書名:數據結構與演算法分析
作者:韋斯 (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數據結構與演算法
給你寫了答案如下,有問題再追問。
B
A
C
確切性
3
infexOf
隊頭指針指向隊尾
對
對
順序表:查找方便,但插入困難;
鏈表:查找困難,但插入方便。
//最大值
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;
}
//刪除節點
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中一個類只能繼承一個父類,也就是單繼承。
但一個類可以實現多個介面,間接地實現了多繼承。介面就是一系列方