Exemplo n.º 1
0
    def __init__(self, N, edges: List[str]) -> 'Bitree':
        self.ans = []
        # constrains: 1 <= t, x, y, a, b <= N
        self.idx = [None] * (N + 1)  # [0] not used

        # The node 1 is the root of the tree.
        self.root = TreeNode(1)
        self.idx[1] = self.root

        while len(edges) > 0:
            resolving = []
            for e in edges:
                ev = e.strip().split()
                ev[0], ev[1] = int(ev[0]), int(ev[1])
                n0 = self.findNode(self.root, ev[0])
                n1 = self.findNode(self.root, ev[1])
                if n0 is None and n1 is None:
                    resolving.append(e)
                    continue

                if n0 is None and n1 is not None:
                    n0 = TreeNode(ev[0], n1)
                    n1.addChild(n0)  # no exception raised?
                elif n1 is None and n0 is not None:
                    n1 = TreeNode(ev[1])
                    n0.addChild(n1)
                self.idx[ev[0]], self.idx[ev[1]] = n0, n1
            edges = resolving
Exemplo n.º 2
0
 def init(self, flist):
     self.flist = flist
     # reset pyclbr
     pyclbr._modules.clear()
     # create top
     # NOTE: later we will be passed in container, rather than creating it
     self.top = top = flist.new_container(own_window=True)
     self.top.add_component(self)
     top.top.bind("<Escape>", self.close)
     if self._htest:  # place dialog below parent if running htest
         top.top.geometry(
             "+%d+%d" %
             (flist.root.winfo_rootx(), flist.root.winfo_rooty() + 200))
     top.top.focus_set()
     # create scrolled canvas
     theme = idleConf.CurrentTheme()
     background = idleConf.GetHighlight(theme, 'normal')['background']
     sc = ScrolledCanvas(top.w,
                         bg=background,
                         highlightthickness=0,
                         takefocus=1)
     sc.frame.pack(expand=1, fill="both")
     item = self.rootnode()
     self.node = node = TreeNode(sc.canvas, None, item)
     node.update()
     node.expand()
Exemplo n.º 3
0
 def init(self, flist):
     self.flist = flist
     # reset pyclbr
     pyclbr._modules.clear()
     # create top
     self.top = top = ListedToplevel(flist.root)
     top.protocol("WM_DELETE_WINDOW", self.close)
     top.bind("<Escape>", self.close)
     if self._htest:  # place dialog below parent if running htest
         top.geometry(
             "+%d+%d" %
             (flist.root.winfo_rootx(), flist.root.winfo_rooty() + 200))
     self.settitle()
     top.focus_set()
     # create scrolled canvas
     theme = idleConf.GetOption('main', 'Theme', 'name')
     background = idleConf.GetHighlight(theme, 'normal')['background']
     sc = ScrolledCanvas(top,
                         bg=background,
                         highlightthickness=0,
                         takefocus=1)
     sc.frame.pack(expand=1, fill="both")
     item = self.rootnode()
     self.node = node = TreeNode(sc.canvas, None, item)
     node.update()
     node.expand()
Exemplo n.º 4
0
def StackBrowser(root, flist=None, tb=None, top=None):
    if top is None:
        top = tk.Toplevel(root)
    sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
    sc.frame.pack(expand=1, fill="both")
    item = StackTreeItem(flist, tb)
    node = TreeNode(sc.canvas, None, item)
    node.expand()
Exemplo n.º 5
0
def StackBrowser(root, flist=None, tb=None, top=None):
    if top is None:
        from Tkinter import Toplevel
        top = Toplevel(root)
    sc = ScrolledCanvas(top, bg='white', highlightthickness=0)
    sc.frame.pack(expand=1, fill='both')
    item = StackTreeItem(flist, tb)
    node = TreeNode(sc.canvas, None, item)
    node.expand()
    return
    def reConstructBinaryTree(self, pre, tin):

        if len(pre) < 1:
            return None

        root = TreeNode(pre[0])
        index = tin.index(root.val)

        root.left = self.reConstructBinaryTree(pre[1:1 + index], pre[:index])
        root.right = self.reConstructBinaryTree(tin[1 + index:],
                                                tin[index + 1:])
Exemplo n.º 7
0
def _test():
    import sys
    from Tkinter import Tk
    root = Tk()
    root.configure(bd=0, bg="yellow")
    root.focus_set()
    sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
    sc.frame.pack(expand=1, fill="both")
    item = make_objecttreeitem("sys", sys)
    node = TreeNode(sc.canvas, None, item)
    node.update()
    root.mainloop()
Exemplo n.º 8
0
def _object_browser(parent):
    import sys
    from Tkinter import Tk
    root = Tk()
    root.title("Test ObjectBrowser")
    width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
    root.geometry("+%d+%d" % (x, y + 150))
    root.configure(bd=0, bg="yellow")
    root.focus_set()
    sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
    sc.frame.pack(expand=1, fill="both")
    item = make_objecttreeitem("sys", sys)
    node = TreeNode(sc.canvas, None, item)
    node.update()
    root.mainloop()
Exemplo n.º 9
0
 def remote_stack_viewer(self):
     from idlelib import RemoteObjectBrowser
     oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {})
     if oid is None:
         self.tkconsole.root.bell()
         return
     item = RemoteObjectBrowser.StubObjectTreeItem(self.rpcclt, oid)
     from idlelib.TreeWidget import ScrolledCanvas, TreeNode
     top = Toplevel(self.tkconsole.root)
     theme = idleConf.GetOption('main','Theme','name')
     background = idleConf.GetHighlight(theme, 'normal')['background']
     sc = ScrolledCanvas(top, bg=background, highlightthickness=0)
     sc.frame.pack(expand=1, fill="both")
     node = TreeNode(sc.canvas, None, item)
     node.expand()
Exemplo n.º 10
0
 def createLeftSide(self):
     leftSide = Frame(self)
     leftSide.pack(side=LEFT, anchor=NW, expand=1, fill=BOTH)
     canvas = Canvas(leftSide)
     scrollbar = Scrollbar(leftSide, orient=VERTICAL)
     canvas.config(bg='white',
                   scrollregion=canvas.bbox(ALL),
                   yscrollcommand=scrollbar.set)
     canvas.pack(side=LEFT, expand=1, fill=BOTH)
     scrollbar.config(command=canvas.yview)
     scrollbar.pack(side=LEFT, fill=Y)
     l1 = self.createTOC()
     item = HelpMenu('Contents', 1, l1)
     node = TreeNode(canvas, None, item)
     node.update()
     node.expand()
Exemplo n.º 11
0
 def init(self, flist):
     self.flist = flist
     pyclbr._modules.clear()
     self.top = top = ListedToplevel(flist.root)
     top.protocol('WM_DELETE_WINDOW', self.close)
     top.bind('<Escape>', self.close)
     self.settitle()
     top.focus_set()
     theme = idleConf.GetOption('main', 'Theme', 'name')
     background = idleConf.GetHighlight(theme, 'normal')['background']
     sc = ScrolledCanvas(top, bg=background, highlightthickness=0, takefocus=1)
     sc.frame.pack(expand=1, fill='both')
     item = self.rootnode()
     self.node = node = TreeNode(sc.canvas, None, item)
     node.update()
     node.expand()
     return
Exemplo n.º 12
0
 def createtreemap(self,
                   tmrootnode=None,
                   sizepropname=SIZE_PROP,
                   clrpropname=CLR_PROP):
     del self.filetree
     if (tmrootnode != None):
         self.tmrootnode = tmrootnode
     ftreeroot = FileTreeItem(self.tmrootnode, self.tmcanvas)
     self.filetree = TreeNode(self.treecanvas, None, ftreeroot)
     self.filetree.update()
     self.filetree.expand()
     clrmap = self.getPropClrMap(self.tmrootnode, clrpropname)
     self.tmcanvas.set(tmcolormap=clrmap,
                       sizeprop=sizepropname,
                       clrprop=clrpropname,
                       upper=[1200, 700],
                       tooltip=self.tooltip)
     self.tmcanvas.drawTreemap(self.tmrootnode)
    def IsExpandable(self):
        node = self.node
        return node.hasChildNodes()

    def GetSubList(self):
        parent = self.node
        children = parent.childNodes
        prelist = [DomTreeItem(node) for node in children]
        itemlist = [item for item in prelist if item.GetText().strip()]
        return itemlist


data = '''
<Computer>
  <Local_Devices>
  </Local_Devices>
</Computer>
'''

root = Tk()
canvas = Canvas(root)
canvas.config(bg='white')
canvas.pack()
dom = parseString(data)
item = DomTreeItem(dom.documentElement)
node = TreeNode(canvas, None, item)
node.update()
node.expand()
root.mainloop()
Exemplo n.º 14
0
from Tkinter import Tk

from idlelib.TreeWidget import ScrolledCanvas, FileTreeSystem, TreeNode
import os

root = Tk()
root.title("File Browser")

sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side="left")

item = FileTreeItem(os.getcwd())
node = TreeNode(sc.canvas, None, item)
node.expand()

root.mainloop()
Exemplo n.º 15
0

class Solution(object):
    def maxDepth(self, root):
        """
        :type root: TreeNode
        :rtype: int
        :左右分支的最大深度加1
        """
        if root == None:
            return 0
        else:
            return max(self.maxDepth(root.left), self.maxDepth(root.right)) + 1


t = TreeNode(1)
node1 = TreeNode(2)
node2 = TreeNode(3)
node3 = TreeNode(4)
node4 = TreeNode(5)
node5 = TreeNode(6)
node6 = TreeNode(7)
t.left = node1
t.right = node2
node1.left = node3
node1.right = node4
node2.left = node5
#node3.left = node6

s = Solution()
print s.maxDepth(t)
Exemplo n.º 16
0
 def __SetDom(self, dom):
   item = DomTreeItem(dom)
   node = TreeNode(self.__canvas, None, item)
   node.update()
   node.expand()