public string FullPath() { string s = this.Key; TreeNodeX parent = (TreeNodeX)this.Parent; while (parent != null && parent.Key != null) { s = parent.Key + "\\" + s; parent = (TreeNodeX)parent.Parent; } return(s); }
private void RecursiveTreeTraversal(List <TreeNodeX> prefixes, TreeNode root, int sum) { //First procoess the current root and prefixes //if (root.val == sum) // solutionCounter++; ////Epic Fail here ////int currentSum = prefixes.Count>0 ? prefixes[prefixes.Count - 1].sumFromRoot: 0 + root.val; int currentSum = (prefixes.Count > 0 ? prefixes[prefixes.Count - 1].sumFromRoot : 0) + root.val; if (currentSum == sum) { solutionCounter++; } foreach (var temp in prefixes) { if ((currentSum - temp.sumFromRoot) == sum) { solutionCounter++; } } if (root.left == null && root.right == null) { return; } //Generate the prefix for further processing List <TreeNodeX> newPrefixes = new List <TreeNodeX>(prefixes); TreeNodeX rootX = new TreeNodeX() { node = root, sumFromRoot = currentSum }; newPrefixes.Add(rootX); //Recursively Call the Left and Right if (root.left != null) { RecursiveTreeTraversal(newPrefixes, root.left, sum); } if (root.right != null) { RecursiveTreeTraversal(newPrefixes, root.right, sum); } }
private void preorderTravesal(TreeNode root, int x0, int y0) { if (root.left != null) { preorderTravesal(root.left, x0 - 1, y0 - 1); } TreeNodeX temp = new TreeNodeX() { node = root, x = x0, y = y0, v = root.val }; preorderNodes.Add(temp); if (root.right != null) { preorderTravesal(root.right, x0 + 1, y0 - 1); } }
public void GetDrivesToNode(TreeNodeX nodeRoot) { DriveInfo[] drives = DriveInfo.GetDrives(); TreeNode driveItem; foreach (DriveInfo drive in drives) { driveItem = nodeRoot.Nodes.Add(drive.Name.TrimEnd('\\').ToUpper(), drive.DriveType.ToString() + @" (" + drive.Name + @")"); driveItem.Tag = drive; driveItem.ImageKey = driveItem.SelectedImageKey = drive.DriveType.ToString(); DirectoryInfo info = new DirectoryInfo(drive.Name); if (info.Exists) { driveItem.Text = drive.VolumeLabel + @" (" + drive.Name + @")"; GetDirectoriesOfDriveToNode(drive, driveItem); } } }
private void DataFactory_NodeIndexingCompleted(object sender, EventArgs e) { Dispatcher.Invoke(() => { var rootSchema = treeGrid.rootNode.RootSchemaNode; foreach (var firstLevelSchema in rootSchema.ChildNodes) { var oldDataItem = treeGrid.rootNode.DataItems.FirstOrDefault(x => x.Name == firstLevelSchema.Name && x.Schema.XPath == firstLevelSchema.XPath); if (oldDataItem != null) { oldDataItem.TotalRecordCount = DataFactory.GetNodeCount(firstLevelSchema.Name); if (oldDataItem.IsDataNodeMissing) { var newDataItem = DataFactory.GetDataItemNode(1, oldDataItem.Name); var childItem = newDataItem.Children.FirstOrDefault(x => x.Name == firstLevelSchema.Name); if (childItem != null) { if (childItem.IsProperty) { oldDataItem.ValueBlock.Text = childItem.Value; oldDataItem.Value = childItem.Value; } else { TreeNodeX treeNodeX = oldDataItem.VisualTreeNode as TreeNodeX; treeNodeX.LoadData(childItem); treeGrid.rootNode.RemoveDataItem(oldDataItem); oldDataItem.VisualTreeNode = null; } } } } } }); }