首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历以下树的正确方法是什么?

遍历以下树的正确方法是什么?
EN

Stack Overflow用户
提问于 2022-03-31 10:14:31
回答 1查看 23关注 0票数 0

给定以下解析树:

在:

代码语言:javascript
复制
from nltk.parse import CoreNLPParser
from nltk.treeprettyprinter import TreePrettyPrinter

parser = CoreNLPParser(url='http://localhost:9000')
next(parser.raw_parse('What is the airspeed of an unladen swallow ?')).pretty_print()

退出:

代码语言:javascript
复制
                           ROOT                            
                            |                               
                          SBARQ                            
  __________________________|____________________________   
 |        SQ                                             | 
 |     ___|_________________                             |  
 |    |                     NP                           | 
 |    |        _____________|______________________      |  
 |    |       |                  PP                S     | 
 |    |       |              ____|___              |     |  
WHNP  |       NP            |        NP            VP    | 
 |    |    ___|_____        |     ___|_____        |     |  
 WP  VBZ  DT        NN      IN   DT        JJ      VB    . 
 |    |   |         |       |    |         |       |     |  
What  is the     airspeed   of   an     unladen swallow  ? 

有和不带终端节点的按预定顺序遍历它的正确方法是什么?

到目前为止,我的主要问题是我不知道如何遍历树。当我这么做时:

代码语言:javascript
复制
for e in parse_tree:
    print(e)

我得到:

代码语言:javascript
复制
(ROOT
  (SBARQ
    (WHNP (WP What))
    (SQ
      (VBZ is)
      (NP
        (NP (DT the) (NN airspeed))
        (PP (IN of) (NP (DT an) (JJ unladen)))
        (S (VP (VB swallow)))))
    (. ?)))

换句话说,我不能访问每一棵树的枝条。通过这种结构的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 06:44:13

根据你的描述,‘空载燕子的空速是多少?'。如果我是对的,我想你一直想要叶节点。!您应该应用DFS(preorder),这将给出树的输出叶节点。

代码-:打印叶节点

代码语言:javascript
复制
leafnodes=[]

def leafnode(node):
    if not node:
        return 
    if not node.left and not node.right:
        leafnodes.append(node.val)
    leafnode(node.left)
    leafnode(node.right)

leafnode(root)

print(leafnodes)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71690744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档