-module(ltree). -export([is_leaf/1,sum/1,max/1,is_ordered/1,insert/2]). -export([test/0]). -record(btree, {value, ltree=nil, rtree=nil}). % 判断某个节点是否为叶子节点 is_leaf(#btree{ltree=nil,rtree=nil}) -> true; is_leaf(#btree{}) -> false. % 整棵树所有节点的值的和 sum(#btree{value=Value, ltree=nil, rtree=nil}) -> Value; sum(#btree{value=Value, ltree=nil, rtree=Rtree}) -> sum(Rtree) + Value; sum(#btree{value=Value, ltree=Ltree, rtree=nil}) -> sum(Ltree) + Value; sum(#btree{value=Value, ltree=Ltree, rtree=Rtree}) -> sum(Ltree) + sum(Rtree) + Value. % 整棵树节点值的最大值 max(#btree{value=Value, ltree=nil, rtree=nil}) -> Value; max(#btree{value=Value, ltree=nil, rtree=Rtree}) -> erlang:max(Value, max(Rtree)); max(#btree{value=Value, ltree=Ltree, rtree=nil}) -> erlang:max(Value, ma
erlang 二叉树
最新推荐文章于 2022-03-07 20:55:02 发布