python - 在networkx中将python列表转换为树结构
问题描述
我有一个数字列表[1, 2, 2, 3, 3, 2, 3, 3, 4]
,我需要将其转换为树,如下所示:
1
/ | \
2 2 2
/ \ / \
3 3 3 3
\
4
注意:在列表中,每个数字与前一个值相比不能+2或大于+2。
解决方案
这可以使用一堆节点以自然的方式完成:
- 初始化一个空栈。
- 对于列表中的每个数字
x
:- 创建一个
node
具有 value的节点x
。 - 弹出直到堆栈为空,或者堆栈中的顶部节点具有 value
x - 1
。 - 如果堆栈非空,则
node
向堆栈顶部的节点添加一条边。 - 推
node
入堆栈。
- 创建一个
- 返回栈底的节点;这是根节点。
推荐阅读
- sql - 在 postgres 中使用排序查询性能
- soap - x509:由未知权威 CMD K6.io 签署的证书
- powershell - 在没有 WINRM 的情况下将文件从本地服务器复制到远程服务器
- r - R data.table:嵌套回归结果之间的差异
- r - R中foreach()内的for循环
- uwp - UWP - ListViewItem IsSelected 的绑定两种方式不采用初始值的绑定
- arrays - C:内存分配问题
- python - 由于属性错误,Jupyter 笔记本无法从命令中打开
- python - Matplotlib 中的 LaTex 产生错误“对不起,但 C:#\bin\latex.exe 没有成功”
- css - 设置相对于窗口而不是屏幕的预加载器宽度