導航:首頁 > 文檔加密 > 演算法與數據結構javapdf

演算法與數據結構javapdf

發布時間:2025-07-10 16:48:52

⑴ 關於java和數據結構的問題

編程語言大同小異,基本的邏輯操作都是一樣的。比如與或,if,while這些。
但是java是面向對象,c是面向程序。我先學的c,後學的java,怎麼都轉不過來。現在習慣用java了,又不會用c了。
其實吧,沒必要學c。如果你java學的好,那麼一般的函數調用,參數傳遞和邏輯語句都應該會了吧。這樣接觸一門新的語言就不是啥難事了。編程重要的是思想,
個人覺得初學編程的時候最難的就是邏輯操作。還有參數和函數的調用。這些都會了之後,不用專門學某種編程,都觸類旁通了(匯編除外)。
我學了c之後自學java,現在用的最好的是java,然後可以重構別人的asp,c#,不會寫但是都可以看懂了,看多了就會寫了

⑵ Java演算法與數據結構代碼

第1題:我給你搭建演算法框架,具體需求,你只需往裡面寫Code即可:

publicclassProgram{

privatestaticfinalintN=6;
publicstaticvoidmain(String[]args){
Nodehead=newNode(-1,null);//定義頭指針,帶頭結點的單鏈表
for(inti=0;i<N;i++){
Nodee=newNode(i+1,null);
tailInsert(head,e);
}

//Test
Nodep=head;
while(p.getNext()!=null){
p=p.getNext();
}
}

/**
*@paramhead實施尾插法演算法的單鏈表頭指針
*@parame所需的元素
*/
privatestaticvoidtailInsert(Nodehead,Nodee){
Nodep=head;
while(p.getNext()!=null){
p=p.getNext();//尋訪單鏈表,直至到達單鏈表末尾
}
//實施尾插法
p.setNext(e);
}
}

classNode{
privateintid;//編號
privateNodenext;//單鏈表後繼指針
privateStringvote;//選票

publicNode(){}
publicNode(intid,Nodenext){
super();
this.id=id;
this.next=next;
}
publicNode(intid,Nodenext,Stringvote){
super();
this.id=id;
this.next=next;
this.vote=vote;
}
@Override
publicStringtoString(){
return"Node[id="+id+",next="+next+"]";
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicNodegetNext(){
returnnext;
}
publicvoidsetNext(Nodenext){
this.next=next;
}
}

第2題:參看我以前的回答:https://..com/question/431512924412893084

演算法思想已經寫的清楚得不能在清楚了。轉成Java就是小菜一碟。

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

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

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

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

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

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

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

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

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

⑷ Java數據結構二叉樹深度遞歸調用演算法求內部演算法過程詳解

二叉樹
1
2 3
4 5 6 7
這個二叉樹的深度是3,樹的深度是最大結點所在的層,這里是3.

應該計算所有結點層數,選擇最大的那個。

根據上面的二叉樹代碼,遞歸過程是:

f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1

f(2) 跟f(3)計算類似上面,要計算左右結點,然後取大者

所以計算順序是f(4.left) = 0, f(4.right) = 0

f(4) = f(4.right) + 1 = 1

然後計算f(5.left) = 0,f(5.right) = 0

f(5) = f(5.right) + 1 =1

f(2) = f(5) + 1 =2

f(1.left) 計算完畢,計算f(1.right) f(3) 跟計算f(2)的過程一樣。

得到f(3) = f(7) +1 = 2

f(1) = f(3) + 1 =3

if(depleft>depright){
returndepleft+1;
}else{
returndepright+1;
}

只有left大於right的時候採取left +1,相等是取right

閱讀全文

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

熱點內容
i盤的單個文件夾能不能加密 瀏覽:349
安卓電腦顯示屏方向反了怎麼修 瀏覽:189
光大的app叫什麼 瀏覽:112
單片機excel文檔 瀏覽:973
pdf軟體官方下載中文版 瀏覽:416
儲存空間其他文件夾 瀏覽:390
科技時尚資訊加密貨幣的新崛起 瀏覽:748
易筋洗髓pdf 瀏覽:51
方舟編譯器和ufs3 瀏覽:78
電腦編程入門自學資料 瀏覽:831
vscode文件夾是暗的 瀏覽:876
精品源碼交易靠譜點的平台 瀏覽:290
linux系統後門 瀏覽:411
軟體顯示無法連接到遠程伺服器怎麼辦 瀏覽:918
小衛星鍋加密 瀏覽:208
按鍵手機版熱更新源碼 瀏覽:656
怎麼拷貝加密門禁卡到手機 瀏覽:917
ghost壓縮系統 瀏覽:807
程序員電腦圖片簡筆畫 瀏覽:102
添加uboot命令 瀏覽:632