数量的级别在LISP
问题描述:
的n元树以下面的方式存储一棵树:数量的级别在LISP
(node (list-subtree-1) (list-subtree-2) ...)
作为一个例子,该树
A
/\
B C
/\
D E
被表示为如下: ( A(B)(C(d)(E)))
返回树的级别的数目
的问题是,我我只允许使用以下函数:null,car,cdr,equal,atom,numberp,cons,cadr,caddr,cond和arithmtic函数。 任何人都可以给我一个函数来返回这种树的水平?
答
我只是给一些提示:
以下级别的数量和包括根节点取决于以下级别的最高数量,包括根节点的任何直接的子节点。
树的形状似乎是未知/任意的,因此您需要找到一种方法来存储当前最深的找到的子树的深度,同时减少要检查的子节点的数量。
我也不得不返回某给定节点的水平,我做了这样的: (defun定义拉特(节点LK) (条件((空L)1) ((等于(车l)节点)k) (t(*(lvl节点(cadr l)(+ k 1))(lvl节点(caddr l)(+ k 1)))) ) 它可以工作,但是我不能修改它返回树的层数......) – 2009-11-08 20:21:15
这功课是? – Flinkman 2009-11-09 09:04:39
大学项目的一部分 – 2009-11-09 11:40:24