Java與演算法(12)

2021-08-02 20:49:04 字數 1533 閱讀 5396

1.二叉樹節點間最大距離問題

給定頭節點,求最大距離

public

class

maxdistance

} public

static

intmaxdistance

(node head)

public

static

intposorder

(node head, int record)

int lmax = posorder(head.left, record);

int maxfromleft = record[0];

int rmax = posorder(head.right, record);

int maxfromright = record[0];

int curnodemax = maxfromleft + maxfromright + 1;

record[0] = math.max(maxfromleft, maxfromright) + 1;

return math.max(math.max(lmax, rmax), curnodemax);

} public

static

void

main

(string args)

}

2.找出兩個節點的最近公共祖先
public

class

lowancestor }

public

static node lowestancestor

(node head, node o1, node o2)

node left = lowestancestor(head.left, o1, o2);

node right = lowestancestor(head.right, o1, o2);

if (left != null && right != null)

return left != null ? left : right;

} public

static

void

main

(string args)

}

3.在二叉樹找到乙個節點的後繼節點
public

class

getnextnode

} public

static node getnextnode

(node node)

if (node.right != null) else

return parent;

} }public

static node getleftmost

(node node)

while (node.left != null)

return node; }

public

static

void

main

(string args)

}

12球問題的java演算法

問題 12個球中有乙個重量異常的球。請你用無砝碼天平稱三次,找出這個球來,並說出它比普通球輕或重。一組測試資料,將12個球做好標記 double a 1.0,b 1.0,c 1.0,d 1.0,e 0.9,f 1.0,g 1.0,h 1.0,i 1.0,j 1.0,k 1.0,l 1.0 顯示結果 ...

《java與模式》 12 合成模式

合成模式屬於物件的結構模式 使客戶端將單純元素與復合元素同等看待 角色 抽象構件角色 樹枝角色 樹葉角色 其中樹枝角色可以有子節點,樹葉角色不可以有子節點,如果根節點是樹葉角色那麼就變成了只有乙個節點的樹 合成模式根據所實現的介面分為兩種形式 安全式 透明式 合成模式可以不提供父物件的管理方法,但是...

Java與演算法(2)

題目 乙個棧依次壓入1,2,3,4,5,那麼從棧頂到棧底分別為5,4,3,2,1,將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現棧中元素的逆序,但是只能使用遞迴函式來實現,不能使用其它資料結構public class reversebystack public intgetandrem...