It is more than just a family tree. A new home for family memories.
Make your family tree live with Puerto Family Tree and do not leave it just a memory hanging. build it with the participation of everyone and make it stretch to infinity.
.
Proxies-free.com: 100% Free Daily Proxy Lists Every Day!
Get Free Proxies Every Day
Make your family tree live with Puerto Family Tree and do not leave it just a memory hanging. build it with the participation of everyone and make it stretch to infinity.
.
Consider the following new operation for disjoint sets
PRINT(x): print every element in S_x the set containing x
One Approach that I found but couldn’t figure out completely :
In addition to tree we store a linked list. And each node in the tree in addition to the element
the tree nodes also stores the pointer to element in the linked list.
UNION(x,y) : We union the x and y as usual. But we join the linked list for x and y
So here I could simply point the tail of one list to the head of another.
Print(x) : we obtain the s=FIND-SET(x) and print all the elements of the linked list pointed to
by s. This will print all the elements.
Now for this to work in the UNION to merge the linked list has to be done in a proper way so that
the root of the tree always point to the beginning of the list.
This can be done like when I merge Tree2 into Tree1 that is point the root of Tree1 to root of
Tree2 then I point the tail of Tree2 list to head of Tree1 list. In the way the merged list
will start with the root node of the tree (or the extra element stored in the root of tree)
Will this approach work or there are some flaws in this ?
Confusion points :
An AVL tree is a binary tree for which a special condition holds throughout the tree, namely, that at every node the height of the left and right subtrees differ by at most 1. A binary tree can be defined in terms of 2 predicates:
empty, the empty binary tree
bt(N,T1,T2) that is true if N is the root of a binary tree with left subtree T1 and right subtree T2, where all the items in T1 are less than or equal to N and all the items in T2 are greater than N.
How do I write a Prolog program that implements the following predicates for an AVL tree:
insert(I,T1,T2) is true if T2 is the AVL tree resulting from I being inserted into an AVL tree T1.
display(T) is always true prints the AVL tree to the display.
While designing compiler specifications I noticed that having some sort of language to further validate and manipulate the AST’s gotten from a Parser would be useful in separating concerns. The overarching goal is to create a maintainable language stack specification. So far I have worked out generic lexer and parser phases: instead of a defined ANTLR ruleset I have a specification for any ruleset. I wish to do the same for further validation of the AST’s (double variable name declarations, non-existing variables etc). While not a hard requirement it would be excellent if this tool is also able to manipulate the AST, similar to database queries.
I went looking for existing query languages or AST manipulation syntax and found the following: TreeQL, SPARQL, Neo4j, SBQL, JSONIQ, CRAQL, astquery.io, AST Query Engine, Tregex & Tsurgeon (still inquiring into these two) and SMARTS.
JSONIQ looked promising but would bind the specification to representing AST’s as JSON. The other options either do not support manipulation or are otherwise too restrictive.
I’d be happy to hear if someone can point me to a Tree/AST manipulation tool/query language (or even better, specification). Thanks in advance.
We have a tree with one click to select and double click to expand. This works well for our users and is something that would be better to keep unchanged.
Now we need to add another action to some of parent elements – to open this parent’s content in a new window (this contains not only child elements, but also additional info about the parent). What could be the best option for this?
Considered solutions:
A) Add “open” to the action bar – not ideal, because an action which is detached from its object may be not obvious and users may not look at the action bar.
B) Add a button on the parent element – if add it on every element it will be too many buttons. Maybe add to only the selected one, then the question is where to place it.
I am not asking about the Huffman Code, but the most widely described algorithm for generating one, also described on the english wikipedia: https://en.wikipedia.org/wiki/Huffman_coding#Compression
Now, I am not really concerned with the code being optimal or not, because many proofs for this can be found, but there is one thing that bothers me – why can I be sure, that for any path on the Huffman Code tree, no string constructed from labels is a prefix of another string in the tree?
Considering a simple tree (source: http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/huffman.php):
It has these codes:
E – 0
U – 10
D – 01
L – 110
C – 1110
M – 11111
Z – 11110
K – 11111,
and it is obvious, that none of these codes is a prefix of another. However, I am looking for a general proof that this is true for any Huffman tree, which for some reason I am unable to find. I would be grateful for any sources.
class Node:
def __init__(self, data, left=None, right=None):
self.data = data
self.left = left
self.right = right
def inorderTraversal(root):
if root is None:
return
inorderTraversal(root.left)
print(root.data, end=' ')
inorderTraversal(root.right)
def preorderTraversal(root):
if root is None:
return
print(root.data, end=' ')
preorderTraversal(root.left)
preorderTraversal(root.right)
def construct(start, end, preorder, pIndex, dict):
# base case
if start > end:
return None, pIndex
root = Node(preorder(pIndex))
pIndex = pIndex + 1
index = dict(root.data)
root.left, pIndex = construct(start, index - 1, preorder, pIndex, dict)
root.right, pIndex = construct(index + 1, end, preorder, pIndex, dict)
return root, pIndex
def constructTree(inorder, preorder):
dict = {}
for i, e in enumerate(inorder):
dict(e) = i
pIndex = 0
return construct(0, len(inorder) - 1, preorder, pIndex, dict)(0)
if __name__ == '__main__':
inorder = (4, 2, 1, 7, 5, 8, 3, 6)
preorder = (1, 2, 4, 3, 5, 7, 8, 6)
root = constructTree(inorder, preorder)
print("The inorder traversal is ", end='')
inorderTraversal(root)
preorderTraversal(root)
I have this code which construct the binary tree, but in no way it can display the tree in the terminal. It is hard to do! Is there anyone here who could add a method which can display the binary tree in a terminal?
For the above example, it might look like
Binary Tree
Here is a problem that I recently encountered and I am having trouble with coming up with an algorithm,.
Suppose you are given an undirected weighted graph G and a minimum spanning tree T of G. Now an edge e’s weight has been updated. Design an algorithm to find the new spanning tree of G. Consider both the cases that e’s weight is increased and is decreased.
Any help on how to approach this problem would be greatly appreciated, not sure if Prim’s will help here…
I’m trying to wrap my head around a prune-and-search algorithm for returning a bottleneck spanning tree, currently I’m selecting the median weight of all the edges, then divide the original graph G into two graphs containing the edges which are less than or equal to the median or greater than.
After separating the graphs, I test the median weight against the original graph (G) to see if it is a bottleneck value. I’m stuck on what to do, if the median is not a bottleneck value, I was thinking maybe I could compact the graph of edges with weights less than the median – but the cut of a compacted graph would still have the weights so the median wouldn’t change. I’m thinking I need to form an MST at some point as well?
So far I have something like:
def F(G):
m = find_avg_weight_of_edges(G)
G_le_m = get_g_w_edge_weight_less_than_or_eqal_to(G,m)
G_gt_m = get_g_w_edge_weight_greater_than(G,m)
if is_bottleneck_value(G,x):
T = F(G_le_m)
else:
# note quite sure what to do...
# I can't remove the less than or equal to edges
# since they are needed to make up the MST
# but if I don't remove them m won't change
# maybe some kind of reduce/scc function?
return T
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It only takes a minute to sign up.
Sign up to join this community
Anybody can ask a question
Anybody can answer
The best answers are voted up and rise to the top
Asked
Viewed
6 times
Using showDepth() function how can implement a BST depth from root to depth
just for me to construct showDepth() from getBtree() where writing by this way which return me diffent result not same in the below codes
class NodeBtree:
# Constructor to create a new node
def __init__(self, data):
self.data = data
self.left = None
self.right = None
Compute the "showDepth" BST with the number of nodes
along the longest path from the root node down to the
farthest leaf node and deepest
def showDepth(node):
if node is None:
return 0
else:
# Compute the depth of each subtree
left_Depth = showDepth(node.left)
right_Depth = showDepth(node.right)
# Use the larger one
if (left_Depth > right_Depth):
return left_Depth + 1
else:
return right_Depth + 1
Here we test the above function
root = NodeBtree(1)
root.left = NodeBtree(2)
root.right = NodeBtree(3)
root.left.left = NodeBtree(4)
root.left.right = NodeBtree(5)
root.left.right = NodeBtree(6)
root.right.right = NodeBtree(7)
print("Height of tree is %d" % (showDepth(root)))
But the other ways like from format
def showDepth(self):
'''show the tree depth'''
print(u"nthe depth of the tree is {} levels.".format(self.getBTree().calculateDepth()))
Alex is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
$endgroup$
3