




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)(Java版)(第2版)
習(xí)題解答
葉核亞編著
目錄
第。章Java程序設(shè)計(jì)基礎(chǔ)..........................................................1
【習(xí)0.1】實(shí)驗(yàn)哥德巴赫猜想。................................................1
【習(xí)0.2]實(shí)驗(yàn)楊輝三角形。..................................................1
【習(xí)0.3]實(shí)驗(yàn)金額的中文大寫(xiě)形式。..........................................1
【習(xí)0.4]實(shí)驗(yàn)下標(biāo)和相等的數(shù)字方陣。........................................I
第6章樹(shù)和二叉樹(shù).................................................................3
【習(xí)6.1】畫(huà)出3個(gè)結(jié)點(diǎn)的各種形態(tài)的樹(shù)和二叉樹(shù)。.................................3
【習(xí)6.2]找出分別滿足下面條件的所有二叉樹(shù)。..................................3
【習(xí)6.3】輸出葉子結(jié)點(diǎn)。.......................................................3
【習(xí)6.4]實(shí)驗(yàn)單鏈表的全部替換操作。........................................4
【習(xí)6.5]實(shí)驗(yàn)單鏈表的全部刪除操作。.........................................4
【習(xí)6.6】折半查找的遞歸算法。.................................................5
【習(xí)6.7】二叉排序樹(shù)查找的遞歸算法。...........................................6
【習(xí)6.8】二叉排序樹(shù)插入結(jié)點(diǎn)的非遞歸算法。.....................................7
【習(xí)6.9】判斷一棵二叉樹(shù)是否為二叉排序樹(shù)。.....................................8
第7章排序.......................................................................10
【習(xí)7.1】判斷一個(gè)數(shù)據(jù)序列是否為最小堆序列。..................................10
【習(xí)7.2】歸并兩條排序的單鏈表。..............................................10
【習(xí)7.3】說(shuō)明二叉排序樹(shù)與堆的差別。..........................................12
圖0.1下標(biāo)和相等的數(shù)字方陣算法描述.............................................I
圖6.13個(gè)結(jié)點(diǎn)樹(shù)和二叉樹(shù)的形態(tài)..................................................3
圖6.2單支二叉樹(shù)...............................................................3
圖7.2歸并兩條排序的單鏈表....................................................11
表0.1intn=4;ength;j++)
2
pOPlp2P()PlP2
(a)第一次匹配,因po=p2,可知t2Kp0(b)第二次匹配,從t3開(kāi)始比較
第0章Java程序設(shè)計(jì)基礎(chǔ)
【習(xí)0.1】實(shí)驗(yàn)哥德巴赫猜想。
【習(xí)02]實(shí)驗(yàn)楊輝三角形。
【習(xí)。3】實(shí)驗(yàn)金額的中文大寫(xiě)形式。
【習(xí)0.4】實(shí)驗(yàn)下標(biāo)和相等的數(shù)字方陣。
輸出下列方陣(當(dāng)n=4時(shí))。
1267或3410
3581325911
491214681215
101115167131416
采用二維數(shù)組實(shí)現(xiàn)。二維數(shù)組中,每一條斜線上各元素下標(biāo)和相等,如圖所示。
程序如下。
publicclassUpmat
pubIicstaticvoidmain(Stringargs[])
-1
表0.1intn=4;ength;j++)
(a)第一次匹配,因po=P2,可知t2±P。(b)第二次匹配,從t3開(kāi)始比較
target
pattern
(a)to=po?ti^pp比較2次,ncxt[1]=-1(b)t2=p(),ta^pp比較2次,ncxt[1]=-l
ength,;
for(inti=0;i<i++)
for(intj=0;j<[i].length;j++)
[j][i]=[i][j];
returntrans;
)
-2-
第6章樹(shù)和二叉樹(shù)
【習(xí)6.1】畫(huà)出3個(gè)結(jié)點(diǎn)的各種形態(tài)的樹(shù)和二叉樹(shù)。
3個(gè)結(jié)點(diǎn)的樹(shù)有2種形態(tài),3個(gè)結(jié)點(diǎn)的二叉樹(shù)有5種形態(tài),如圖所示。
(a)3個(gè)結(jié)點(diǎn)的樹(shù)具有2種基本形態(tài)(b)3個(gè)結(jié)點(diǎn)的二又朝具有5種基本形態(tài)
圖6.13個(gè)結(jié)點(diǎn)樹(shù)和二叉樹(shù)的形態(tài)
【習(xí)&2】找出分別滿足下面條件的所有二叉樹(shù)。
①先根遍歷序列和中根遍歷序列相同:右單支二叉樹(shù),如圖(a)所示。
②中根遍歷序列和后根遍歷序列相同:左單支二叉樹(shù),如圖(b)所示。
③先根遍歷序列和后根遍歷序列相同:空樹(shù),只有一個(gè)根結(jié)點(diǎn)的二叉樹(shù)。
(a)右單支二叉樹(shù)(b)左單支二叉樹(shù)
圖6.2單支二叉樹(shù)
【習(xí)6.3】輸出葉子結(jié)點(diǎn)。
在BinaryTree類中增加以下方法。
publicvoidIeaf()quals(i))))
returnfalse;
returntrue;
-3-
)
returnfalse;
)
【習(xí)6.4]實(shí)驗(yàn)單鏈表的全部替換操作。
在SinglyLinkedList單鏈表類中,增加替換操作方法如下。
publicbooleanreplace(Objectobj,EeIement)//詳見(jiàn)實(shí)驗(yàn)
pubIicbooleanreplaceAlI(Objectobj,Eelement)〃將所有元素值為obj的結(jié)點(diǎn)值替
換為eIement
(〃若替換成功返回true,否則返回false
booleandone二千aIse;
if(obj!二null&&eIement!=nuII)
(
Node<E>p=;
while(p!=nulI)
(
if)
(
=element;
done=true;
1
p=;
)
)
returndone;
)
【習(xí)6.5]實(shí)驗(yàn)單鏈表的全部刪除操作。
在SinglyLinkedList單鏈表類中,增加刪除操作方法如下。
publicbooleanremoveAlI(Objectobj)〃將所有元素值為obj的結(jié)點(diǎn)刪除
(
if==nuII|Iobj=nulI)
-4-
returnfalse;
booleandone=faIse;
while!=nulI&&{
=〃頭刪除
done=true;
)
Node<E>front=,p=;
while(p!=nulI)
if)
(
=;〃刪除P結(jié)點(diǎn)
P=;
done=true;
I
else
(
front=p;
P=;
1
returndone;
)
【習(xí)6.6】折半查找的遞歸算法。
publicstaticintbinarySearch(int[]table,intvaIue)〃折半查找算法,數(shù)組元素
已按升序排列
{//若查找成功返回元素下標(biāo),否則返回7
if(table!=nulI)
returnbinarySearch(tabIe,vaIue,0,;
return-1;
)
privatestaticintbinarySearch(int[]table,intvalue,intlow,inthigh)〃折
-5-
半查找,遞歸算法
(//lowvhigh指定查找范圍的下界和上界
if(Iow<=high)〃邊界有效
(
intmid=(low+high)/2;〃中間位置,當(dāng)前比較元素位置
H");
if(tabIe[mid]==vaIue)
returnmid;〃查找成功
eIse
if(tabIe[mid]>vaIue)〃給定值小
returnbinarySearch(tabIe,value,low,mid-1);〃查找范圍縮
小到前半段
eIse
returnbinarySearch(tabIe,vaIue,mid+1,high);//查找范圍縮
小到后半段
)
return-1;
)
【習(xí)6.7]二叉排序樹(shù)查找的遞歸算法。
將二叉排序樹(shù)類BinarySortTree中的search(vaIue)方法替換為以下方法。
publicBinaryNode<E>searchNode(EvaIue)〃查找值為vaIue的結(jié)點(diǎn)
(〃若查找成功返回結(jié)點(diǎn),否則返回null
if(vaIue==nuII||!(vaIueinstanceofComparable))
returnnull;
returnsearchNode(vaIue,root);
)
privateBinaryNode<E>searchNode(EvaIue,BinaryNode<E>p)〃查找值為value的結(jié)點(diǎn),
遞歸算法
(
if(p!=nulI)
-6-
Comparablecmpobj=(Comparable)value;
if==0)〃若兩個(gè)對(duì)象相等,查找成功
returnp;
一);
if<0)
returnsearchNode(vaIuer;〃在左子樹(shù)中查找
eIse
returnsearchNode(vaIue,;〃在右子樹(shù)中查找
)
returnnull;
)
[習(xí)6.8]二叉排序樹(shù)插入結(jié)點(diǎn)的非遞歸算法。
將二叉排序樹(shù)類BinarySortTree中的insert(vaIue)方法替換為以下方法。
publicbooleaninsertNode(EvaIue)〃插入結(jié)點(diǎn),非遞歸
算法
(
if(value二二null||!(valueinstanceofComparabIe))
returnfalse;
if(root=nulI)
root二newBinaryNode<E>(vaIue);〃建立根結(jié)點(diǎn)
eIse
(
BinaryNode<E>p=,parent=nuII;
ComparabIecmpobj=(ComparabIe)vaIue;
while(p!=nulI)
(
parent=p:
if==0)
returnfalse;〃不插入重復(fù)關(guān)鍵字
if<0)
-7-
eIse
P=;
)
p=newBinaryNode<E>(vaIue);〃建立葉子結(jié)點(diǎn)p
if<0)
=p;//p作為parent的左孩子
eIse
=P;//p作為parent的右孩子
)
returntrue;
)
【習(xí)6.9】判斷一棵二叉樹(shù)是否為二叉排序樹(shù)。
將二叉樹(shù)類BinaryTree中增加以下方法。
publicbooleanisSorted()〃判斷一棵二叉樹(shù)是否為二叉
排序樹(shù)
(
returnisSorted;
)
publicbooleanisSorted(BinaryNode<E>p)
(
booleanyes=true;
if(p!=nulI)
(
if(!instanceofComparabIe))
returnfalse;
Comparablecmpobj=(Comparable);
if(=nulI||!=nulI&&&&
=nulI||!=nulI&&{
yes=isSorted;
if(yes)
yes=isSorted;
-8-
1
eIse
yes=false;
1
returnyes;
)
-9-
第7章排序
【習(xí)7.1】判斷一個(gè)數(shù)據(jù)序列是否為最小堆序列。
publicstaticbooleanisMinHeap(int[]table)//判斷一個(gè)數(shù)據(jù)序列是否
為最小堆
(
if(table==nulI)
returnfalse;
inti=2-1;〃最深一棵子樹(shù)的根結(jié)點(diǎn)
while(i>=0)
(
intj=2*i+1;//左孩子
if(j<
if(table[i]>table[j])
returnfalse;
eIse
if(j+1<&&table[i]>table[j+1])〃右孩子
returnfalse;
i一;
)
returntrue;
)
【習(xí)7.2】歸并兩條排序的單鏈表。
使用一趟歸并排序算法,將兩條排序的單鏈表合并成一條排序的單鏈表。算法描述如圖
所示。
-10-
frontP
(a)建立兩條排序的單鏈表,將list中結(jié)點(diǎn)依次插入到this單鏈表中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度競(jìng)業(yè)禁止勞動(dòng)合同在高新技術(shù)產(chǎn)業(yè)的創(chuàng)新實(shí)踐
- 二零二五年度民營(yíng)企業(yè)協(xié)商解除勞動(dòng)合同及安置方案
- 二零二五年度秸稈供應(yīng)合同中的秸稈生物質(zhì)能源項(xiàng)目市場(chǎng)推廣合作協(xié)議
- 二零二五年度簡(jiǎn)易棄土場(chǎng)租賃協(xié)議(環(huán)保園區(qū)建設(shè))
- 2025年荊門(mén)普通貨運(yùn)從業(yè)資格證考試
- 2025年揭陽(yáng)貨運(yùn)從業(yè)資格證考試卷
- 2025年崇左道路貨運(yùn)從業(yè)資格證考試
- 先進(jìn)個(gè)人 發(fā)言稿
- 2024年有孩子的離婚協(xié)議
- 2025年客貨運(yùn)從業(yè)資格證考試
- 2025年安徽職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)一套
- 開(kāi)啟新征程??點(diǎn)亮新學(xué)期+課件=2024-2025學(xué)年高一下學(xué)期開(kāi)學(xué)家長(zhǎng)會(huì)
- 2025內(nèi)蒙古烏審旗圖克鎮(zhèn)圖克工業(yè)園區(qū)中天合創(chuàng)化工分公司招聘20人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 壓力容器考試審核考試題庫(kù)(容標(biāo)委氣體協(xié)會(huì)聯(lián)合)
- 人教版(2025版)七年級(jí)下冊(cè)英語(yǔ)UNIT 1 Animal Friends 單元整體教學(xué)設(shè)計(jì)(6個(gè)課時(shí))
- 2.3品味美好情感 課件 -2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 七年級(jí)道法下冊(cè) 第一單元 綜合測(cè)試卷(人教海南版 2025年春)
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃及安排表
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 海洋自主無(wú)人系統(tǒng)跨域協(xié)同任務(wù)規(guī)劃模型與技術(shù)發(fā)展研究
- 校園體育活動(dòng)的多元化與健康促進(jìn)
評(píng)論
0/150
提交評(píng)論