找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1361|回复: 35

如何用LISP玩转树结构?

[复制链接]
 楼主| 发表于 2013-5-20 00:16:50 | 显示全部楼层
早猜到cons对于以表为特色的语言中的重要性!
无奈就是无法玩转它!
比如用它怎地构建个树结构的数据!
构建好后又得如何按要求提取!
可有类似程序供学习吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 12:29:29 | 显示全部楼层
本帖最后由 wowan1314 于 2013-5-20 12:31 编辑

不知道是不是我把简单的问题复杂化了。。。。。

下面这个表估计也表达的不对。。 我还没想明白这个树状表该怎么表示呢。。
IR5VH7F2TS@]1W}I]{ZTMZN.jpg

点评

看来楼主也是给排水专业的.其他专业可能不太能理解,自喷管径标注的流程  发表于 2013-5-20 16:31

评分

参与人数 1D豆 +4 收起 理由
xshrimp + 4 出题引导交流奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 00:31:50 | 显示全部楼层
wowan1314 发表于 2013-5-20 00:16
早猜到cons对于以表为特色的语言中的重要性!
无奈就是无法玩转它!
比如用它怎地构建个树结构的数据!

可否举个具体的应用? 你要建立什么树结构?

点评

这个问题属于深层次的问题。 应该属于算法里面的运用了。 算法对我还很陌生。没想好要不要学。  发表于 2013-5-20 16:05
这帖子不是我发的吧?! 我都没想好问这个问题呢? 估计是版主转过来的。其实问题还不成熟。  发表于 2013-5-20 12:36

评分

参与人数 1D豆 +5 收起 理由
wowan1314 + 5 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 09:06:39 | 显示全部楼层
Lispboy 发表于 2013-5-20 00:31
可否举个具体的应用? 你要建立什么树结构?

点方格处

点方格处

然后产生这个图

然后产生这个图

商业软件演示图

商业软件演示图

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 09:12:18 | 显示全部楼层
Lispboy 发表于 2013-5-20 00:31
可否举个具体的应用? 你要建立什么树结构?

上面这个图,我想是否应该属于树结构。

通过点击条件图的方格,然后得到所有与之相连的线。(注:线与线,喷头与线间都是断开与点)

找到所有的线的同时建立树状结构的数据。然后从末端开始回溯地计算每个线的管径。

因为正常顺着求解每个解都是独立的。 倒着求解,则可以利用上次求解的答案。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 11:49:21 | 显示全部楼层
楼主的图像在跳舞啊,

你说的树就是一个“枝”的吗? 如这样就是一个表了,你是想随时找到一个元素的前面的元素和后面的元素的值?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 12:15:58 | 显示全部楼层
Lispboy 发表于 2013-5-20 11:49
楼主的图像在跳舞啊,

你说的树就是一个“枝”的吗? 如这样就是一个表了,你是想随时找到一个元素的前 ...

我想写个像演示那样的程序。
估计是要用到  表来存储各图元。这个表要有如图一样树状的结构,这样方便一级一级的逆向计算。
而现在这树状表怎么构建?这构建的表如何一级一级的提取。

说不明白。 你尝试想下这个程序怎么做? 估计就明白了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 12:39:12 | 显示全部楼层
本帖最后由 Lispboy 于 2013-5-20 12:41 编辑
wowan1314 发表于 2013-5-20 12:15
我想写个像演示那样的程序。
估计是要用到  表来存储各图元。这个表要有如图一样树状的结构,这样方便 ...

既然你昨天看到LISP他爸了,就知道LISP是人工智能语言,没什么做不了的,只是怕你想不到。

LISP天然适合树结构,但是有个前提,LISP表示单向链表,顺向取元素 CDR 就可以了,但逆向需要自己写函数,也不难。这些都是战术上的事情,数据的存储结构的组织和怎么取元素并不相关。

组合成什么样的树结构,要看你如何组织数据了,你的数据 子树的第一个元素要是 关键字,以后可以方便用ASSOC取出来,取出的是一个子树的“根”节点,需要这个里面的数据 再遍历 这个“子树”下面的表。

常用的树结构有 二叉树,有很多成熟的算法,用LISP也很容易模拟出。
比如:
   根:  root ----(root1 root2)
            root1---(root1-1 root1-2)
            root2---(root2-1 root2-2)
这就是一个二叉树。

找元素用ASSOC,也就是你的数据表要求是关联表。每个关联表是一个树枝的根。

由于不懂你的专业,不过你的想法都可以通过组织一个合适的表做出来,操作的时候用适合表结构的“递归”,可以很容易的取出数据,构造数据。

你要有个具体的想法,可以贴上来,咱们大家探讨探讨怎么实现,只看你那个图,发蒙。

给你网上找了几个图片,有个挺像你的图片的。

4.jpg


16410V613-2.jpg



634585302083281250.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 12:42:45 | 显示全部楼层
wowan1314 发表于 2013-5-20 12:29
不知道是不是我把简单的问题复杂化了。。。。。

下面这个表估计也表达的不对。。 我还没想明白这个树状 ...

哇,发完贴才看到你这个图,这不就是二叉树吗? 你想做什么? 二叉树很多成熟的算法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 12:44:50 | 显示全部楼层
wowan1314 发表于 2013-5-20 12:29
不知道是不是我把简单的问题复杂化了。。。。。

下面这个表估计也表达的不对。。 我还没想明白这个树状 ...

二叉树也好,多书树也好(就是LISP表多于2个表),你都要组织成关联表,以后要用ASSOC取数据。LISP表也可以看做是个简单的数据库,通过ASSOC 查询。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 12:58:15 | 显示全部楼层
Lispboy 发表于 2013-5-20 12:44
二叉树也好,多书树也好(就是LISP表多于2个表),你都要组织成关联表,以后要用ASSOC取数据。LISP表也可 ...

我这个问题像那个  八卦 造型  。 枝状线路(没回路)

以前搜了下应该属于树结构。至于怎么运用还不明白。

可有LISP解树结构的 例子供学习吗? 我先学习下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-20 13:02:25 来自手机 | 显示全部楼层
处理复杂的树必须得用到归递。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 13:02:45 | 显示全部楼层
wowan1314 发表于 2013-5-20 12:58
我这个问题像那个  八卦 造型  。 枝状线路(没回路)

以前搜了下应该属于树结构。至于怎么运用还不明 ...

关键是你要解什么啊,我去帮你看看找个二叉树排序算法吧,看能不能写成LISP。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 13:30:00 | 显示全部楼层
你看我的程序要求就知道我要解什么了。

我先说说我的思路
1、点选起点线(树的根部)递归找到所有的线。
     找到同时就要把(图元  两头坐标点)建立成树状结构的表。
2、根据上面的树状表,一级一级的算X图元两点是否有圆(即喷头),
     这一级的喷头数是下一级的喷头数的基数。
    比如每段带一个喷头,树叶开始,1段喷头数n,2段1+n=M,
    3段1+M 树叉的地方是两边相加 ...以此类推直到树根。
知道喷头数就知道管径了然后标注管径。


问题是我不明白用什么的表结构来表示这个支状的管网。
也不知道递归的时候怎么建立这样的表结构

点评

原先我也写过一个,不是很完善.代码现在也找不到了.遗憾 我的思路是先找到最不利点.  发表于 2013-5-20 16:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-20 13:38:38 | 显示全部楼层
wowan1314 发表于 2013-5-20 13:30
你看我的程序要求就知道我要解什么了。

我先说说我的思路

每个分支的地方,做成关联表。

点评

关联表是什么?  发表于 2013-5-20 16:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 21:11 , Processed in 0.383057 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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