本帖最后由 77077 于 2014-8-12 03:00 编辑
还是没能好好理解递归,不过直觉告诉我,这个可以用递归来做更快捷!
这是一个odcl对话框tree控件加载节点的代码,求高手们帮个忙,用递归方法解决下~~~ - (setq lst '(
- (("A" "分类")
- (("A1" "中类")
- ("A11" "子类")
- ("A12" "子类"))
- (("A2" "中类")
- ("A21" "子类")
- ("A22" "子类")
- ("A23" "子类"))
- (("A3" "中类")
- ("A31" "子类")
- ("A32" "子类")
- ("A33" "子类"))
- (("A4" "中类")
- ("A41" "子类")
- ("A42" "子类")
- ("A43" "子类")
- ("A44" "子类"))
- (("A5" "中类"))
- )
- (("B" "分类")
- (("B1" "中类")
- ("B11" "子类")
- ("B12" "子类"))
- (("B2" "中类")
- ("B21" "子类")
- ("B22" "子类")
- ("B23" "子类"))
- (("B3" "中类")
- ("B31" "子类")
- ("B32" "子类")
- ("B33" "子类"))
- (("B4" "中类")
- ("B41" "子类")
- ("B42" "子类")
- ("B43" "子类")
- ("B44" "子类")))
- )
- );setq
- (defun c:ydcood_ydcood_OnInitialize ( / )
- (foreach a lst
- (setq Pa (dcl_Tree_AddParent ydcood_ydcood_tree
- (strcat (car(car a)) ":" (cadr (car a)))))
- (foreach b (cdr a)
- (setq Pb (dcl_Tree_AddChild ydcood_YDCOOD_Tree
- (list(list pa (strcat (car(car b)) ":" (cadr (car b)))))))
- (foreach c (cdr b)
- (setq Pc(dcl_Tree_AddChild ydcood_YDCOOD_Tree
- (list(list pb (strcat (car c) ":" (cadr c))))))
- )
- )
- )
- )
|