急......小弟明天要参加考虑,有几道题不会做,请高手们指点一下,十分感谢!(100分)

  • 主题发起人 主题发起人 marhoo
  • 开始时间 开始时间
M

marhoo

Unregistered / Unconfirmed
GUEST, unregistred user!
1、某系统权限设计:一个用户可拥有多个权限,一个权限可赋给多个用户,设计ER图(实休关系图);
2、要求为一个主题设置若干个观察者,试用Observer模试实现(可用伪码);
3、给出二叉树,描述如下:
typedef struct bnode *bintree;
struct bnode{
datatype data;
bintree lc,rc;
}
求其高度(深度)。
十分感谢。
 
用户 ------- 拥有 -------- 权限
N M
sub=new SubObject();
obs1=new Observer();
obs2=new Observer();
sub.attatch(obj1);
sub.attatch(obj2);
sub.changeData(200403);
int TreeHeight(bintree node)
{
int lh,rh;
if(node==NULL)
return(0);
lh=TreeHeight(node->lc);
rh=TreeHeight(node->rc);
if(lh>=rh)
return(lh+1);
else
return(rh+1);
}
 
哈哈,只剩第三问了。
偶实在是只懂Delphi,改成Delphi写吧。
type
bintree = ^bnode;
bnode = record
data: datatype;
lc,rc: bintree;
end;

function TreeDepth(t: bintree): Integer;
var
ld, rd: Integer;
begin
if t=nil then
result:=0
else
begin
ld:=TreeDepth(t^.lc);
rd:=TreeDepth(t^.rc);
if ld>rd then
result:=ld+1
else
result:=rd+1
end
end
 
多人接受答案了。
 
后退
顶部