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...