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
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()
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()
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()
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:])
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()
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()
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()
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()
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
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()
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()
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)
def __SetDom(self, dom): item = DomTreeItem(dom) node = TreeNode(self.__canvas, None, item) node.update() node.expand()