明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1192|回复: 2

[提问] 求助递归问题.

[复制链接]
发表于 2014-8-12 01:36:05 | 显示全部楼层 |阅读模式
本帖最后由 77077 于 2014-8-12 03:00 编辑

还是没能好好理解递归,不过直觉告诉我,这个可以用递归来做更快捷!
这是一个odcl对话框tree控件加载节点的代码,求高手们帮个忙,用递归方法解决下~~~
  1. (setq lst '(
  2. (("A" "分类")
  3.    (("A1" "中类")
  4.      ("A11" "子类")
  5.      ("A12" "子类"))
  6.   (("A2" "中类")
  7.     ("A21" "子类")
  8.     ("A22" "子类")
  9.     ("A23" "子类"))
  10. (("A3" "中类")
  11.     ("A31" "子类")
  12.     ("A32" "子类")
  13.     ("A33" "子类"))
  14.   (("A4" "中类")
  15.     ("A41" "子类")
  16.     ("A42" "子类")
  17.     ("A43" "子类")
  18.     ("A44" "子类"))
  19.   (("A5" "中类"))
  20.     )
  21. (("B" "分类")
  22.    (("B1" "中类")
  23.      ("B11" "子类")
  24.      ("B12" "子类"))
  25.   (("B2" "中类")
  26.     ("B21" "子类")
  27.     ("B22" "子类")
  28.     ("B23" "子类"))
  29. (("B3" "中类")
  30.     ("B31" "子类")
  31.     ("B32" "子类")
  32.     ("B33" "子类"))
  33.   (("B4" "中类")
  34.     ("B41" "子类")
  35.     ("B42" "子类")
  36.     ("B43" "子类")
  37.     ("B44" "子类")))
  38.     )
  39. );setq
  40. (defun c:ydcood_ydcood_OnInitialize ( / )
  41. (foreach a lst
  42.     (setq Pa (dcl_Tree_AddParent ydcood_ydcood_tree
  43.        (strcat (car(car a)) ":" (cadr (car a)))))
  44.     (foreach b (cdr a)
  45.        (setq Pb (dcl_Tree_AddChild ydcood_YDCOOD_Tree
  46.             (list(list pa (strcat (car(car b)) ":" (cadr (car b)))))))
  47.        (foreach c (cdr b)
  48.            (setq Pc(dcl_Tree_AddChild ydcood_YDCOOD_Tree
  49.                (list(list pb (strcat (car c) ":" (cadr c))))))
  50.           )
  51.           )
  52.      )
  53. )
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2014-8-12 01:43:20 | 显示全部楼层
本帖最后由 77077 于 2014-8-12 02:03 编辑

唉,好像错了

  1. (defun addchild (x)
  2.    (if (= (car x) nil)
  3.         nil
  4.         (progn
  5.         (foreach n x
  6.           (setq Px (dcl_Tree_AddChild ydcood_YDCOOD_Tree
  7.                (list(list p (strcat (car(car n)) ":" (cadr (car n)))))))
  8.            (addchild (cdr x))      
  9.         )
  10.         )
  11.    )
  12. )
正常的是

用我自己的递归弄出来的变成

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2014-8-12 03:02:03 | 显示全部楼层
哦,明白了,我的lst出错,格式没定义正确~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-24 06:10 , Processed in 0.186937 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表