【发布时间】:2015-07-16 10:13:09
【问题描述】:
我在 clojure 中有一个地图数据结构:
{:category_id 1, :name "ELECTRONICS", :lft 1, :rgt 20, :children [{:category_id 6, :name "PORTABLE ELECTRONICS", :lft 10, :rgt 19, :children [{:children [{:rgt 13, :lft 12, :name "FLASH", :category_id 8}], :category_id 7, :name "MP3 PLAYERS", :lft 11, :rgt 14} {:rgt 18, :lft 17, :name "2 WAY RADIOS", :category_id 10} {:rgt 16, :lft 15, :name "CD PLAYERS", :category_id 9}]} {:children [{:rgt 6, :lft 5 , :name "LCD", :category_id 4} {:rgt 8, :lft 7, :name "PLASMA", :category_id 5} {:rgt 4, :lft 3, :name "TUBE", :category_id 3}] , :rgt 9, :lft 2, :name "电视", :category_id 2}]}
我想将一些数据(与类别关联的产品)附加到所有作为产品类别的叶节点,使其看起来像这样:
{:category_id 1, :name "ELECTRONICS", :lft 1, :rgt 20, :children [{:category_id 6, :name "PORTABLE ELECTRONICS", :lft 10, :rgt 19, :children [{:children [{:rgt 13, :lft 12, :name "FLASH", :category_id 8}], :category_id 7, :name "MP3 PLAYERS", :lft 11, :rgt 14 :products [{:name "SONY MP3 PLAYER"} {:name "SONY MP3 PLAYER 2"}]} {:rgt 18, :lft 17, :name "2 WAY RADIOS", :category_id 10} {:rgt 16, :lft 15, :name "CD 播放器", :category_id 9}]} {:children [{:rgt 6, :lft 5, :name "LCD", :category_id 4} {:rgt 8, :lft 7, :name "PLASMA", : category_id 5} {:rgt 4, :lft 3, :name "TUBE", :category_id 3}], :rgt 9, :lft 2, :name "TELEVISIONS", :category_id 2}]}
我在叶子节点“MP3 PLAYERS”中添加了两个产品
如何使用 clojure 实现这一点?如果不是clojure,我可以获得任何其他编程语言的解决方案吗?像 Python 之类的?
【问题讨论】:
-
请做一个更简单的例子。很难说你的问题的哪一部分是重要的,哪一部分只是噪音。