C++ :: How To Convert Array To Balance Binary Tree
Jul 2, 2014So if I have an array how do I convert it to a balance binary tree?
View 1 RepliesSo if I have an array how do I convert it to a balance binary tree?
View 1 RepliesI've been working on this assignment and but I know that I'm not handling my array properly.
#include<conio.h>
#include<iostream>
#include<stdio.h>
using namespace std;
class binaryTree {
[Code] .....
I want to find maximum element from a tree (not a binary tree ) ???? ...using c language...
View 1 Replies View RelatedPlatform : c++, compiler: GNU gcc
I am new to programming and have written the code for the following program.
PROGRAM: Input 2 arrays => arrays 1 and 2 from the user each containing 5 elements. Sum is another array which is sum of elements of array 1 and array 2. Convert each of the elements of the sum array into binary. Count number of 1's in each binary element and output it to another array "arr".
Example: arr1 = {1,2,3,4,5}
arr2 = {6,7,8,9,10}
sum = {7,9,11,13,15}
binary of 7 [111], 9[1001], 11[1011], 13[1101], 15[1111]
No of 1's in 7 [3], 9 [2], 11 [3], 13 [3], 15 [4]
arr array will be {3, 2, 3, 3, 4}
I am not getting the desired output. My code is:-
include <iostream>
using namespace std;
int main() {
int array1[5];
[code].....
I'm having trouble converting this binary search with an int array to use a string array..
Code:
#include <iostream>
#include <string>
using namespace std;
// Function prototype
int binarySearch(string [], int);
[Code] .....
I am attempting to write a program that converts binary to base10, and vice versa.
But in the function for converting Base10 to Binary, just as it reaches the line of code
int* binary = new int [a];
it skips straight to the int main()
All I'm attempting to do with that line of code is initialize the variable "a" into the elements of the array "binary".
[URL] ....
For my data-structures class, I am attempting to create a binary search tree template to be used to create an AVL tree. I've written a Generic_Tree template for the BST to inherit from, and before I jump into implementing the AVL tree I'm testing the BST member functions. Everything was compiling fine until I added the BST insert() function. Now, I'm getting the following error message from my linker:
undefined reference to 'BST<void>::insert(int, void*)'
Stemming from the call in main line 16.
my makefile compiles with:
g++ -Wall -g Generic_Tree.cpp BST.cpp barfing.cpp main.cpp
Generic_Tree:
template < typename NODE_DATA, unsigned MAX_KIDS >
class Tree {
protected:
struct NODE {
NODE_DATA* contents;
Tree* child[MAX_KIDS];
Tree* parent;
[Code] ....
I'm use to c and havn't used classes or templates before (except for declaring instances of them). The whole syntax is mystifying to me,.
It only prints out the root in an infinite loop.
Code: void Btree::printTree(Node* tree)
{
tree=root;
if (tree != NULL)
{
std::cout<<" "<< tree->key;
printTree(tree->left);
printTree(tree->right);
}
}
It has been a while since I built a binary tree from scratch so I decided to do it. Everything works fine but this one function. When I enter a number to search it just keeps running and allowing me to keep enter numbers.
Code:
void tree::search(int key,Node* leaf) {
if (leaf == NULL) {
std::cout<<"The tree is empty
[Code] ......
I have a problem with the C code . I created two functions, one that runs through the tree inorder, the other that returns the maximum value in the tree. The problem is when I use in the main the method "max", which goes in a loop and not print anything on the screen . If I remove the call to method "max" it works fine. Here's the code:
Code:
#include<stdio.h>
#include<stdlib.h>
#define bool int
/* A binary tree tNode has data, pointer to left child
and a pointer to right child */
struct tNode {
[Code]...
I just want to ask if some of you know good source for learning about Binary Trees.
View 2 Replies View RelatedI've almost got my code working. My issue is, if I type in either one of the first two id numbers, it finds the person and displays as it's supposed to, however if I type any of the last 6 id numbers it says id not found. I've been staring at this forever and can't see what I'm missing />/> ps, I haven't added in all my comments yet Binary tree template
//Binray tree template class
#ifndef BINARYTREE_H
#define BINARYTREE_H
[Code].....
I want to print binary tree in this form on screen
1
/
2 3
/ /
4 5 6 7
/ /
8 9 10 11
This is the code for creating Binary Tree:
#include<stdio.h>
struct node
{
int data;
struct node *right;
struct node *left;
};
struct node *root = NULL;
int main ()
{
struct node *child, *temp;
[Code]...
I am not sure how to build the tree with values:
Code:
struct Node *root = 1 root->left = 2
root->right = 3
root->left->left = 4;
root->left->right = 5;
Everything should be right except the main(). How to demonstrate this program correctly?
Code:
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include <stack> // std::stack
[Code] .....
I have implemented a copy control version of binary tree.. As I am a Beginner. I think i have made my mistake.
Code:
#include <iostream>
#include <string>
class TreeNode{
TreeNode(const std::string &val):value(val),count(new int(1)){}
TreeNode(const TreeNode& rhs):value(rhs.value),count(count),left(rhs.left),right(rhs.right){++*count; }
[Code] ......
I am trying to implement BST using templates. This is the code that i have written.
Code: template <class T>
struct node
{
struct node *left;
[Code].....
There are no errors but the program hangs. What is the mistake with this program ?
I need to write a program to find the sum of depths of a binary tree, where a depth is by definition the shortest distance between a node and the root. I am required to code this using recursion.
I was thinking of first coding a helper recursion to find the depth for each node. What would be the best way to do that? If I could move from the node to the root, I believe programming this helper recursion would not be very difficult. Is there a way to progress from the node to the root?
I am having trouble writing an insert function for a binary tree.
Here is the structure that I have to use.
I have the print function done, the insert function is the one I am having trouble with,
Code:
typedef struct bt_{
int value;
struct bt_ *right;
struct bt_ *left;
}BST;
[Code].....
I am having trouble with my deleteNode function, using recursion I am trying to delete a node from a binary tree. My tree is displayed as the following...
Tree: (node)->[left child, right child]
(k)->[g,p]
(g)->[c,h]
(c)->[ ,e]
[Code]....
The result did show that it is erased but when I try to add the erase node "t" back into the tree it still exist. I am stumped on what to do when using recursion way of deleting node.
I'm in interested to know what will be the height of binary tree with say 5 nodes (consider it balanced) is it 2 or 3?
9
/
5 13
/
3 7
and for following tree also:
2
/
7 5
/
2 6 9
/ /
5 11 4
is it 3 or 4?
i'm asking because, not able to find correct/one answer.
the algorithm i find is:
depth(struct tree*t) {
if ( t == NULL) return 0;
return max( depth(tree->left), depth(tree->right) ) + 1;
}
According to it, ans for second will be 4
But as per image on wikipedia [URL] .... the ans is 3
I am trying to write a function that inserts an item into this binary tree in C++.
template <typename T>
struct BTree {
T val;
BTree<T>* left;
BTree<T>* right;
BTree(T v, BTree<T>* l=nullptr, BTree<T>* r=nullptr) :
val(v), left(l), right(r) {}
};
Here's my attempt.
template <typename T>
void insert(BTree<T>* tree, T item) {
if (tree == nullptr) {
tree = new BTree<T>(item);
} else if (item < tree->val) {
insert(tree->left, item);
} else {
insert(tree->right, item);
} }
I think this function may not be working because I am modifying `tree`, which is a local variable. How do I actually modify the current pointer that `tree` represents, not just `nullptr`?
How to store values from a .txt file delimited with semicolons (;) into a class which is then stored into a Binary Search Tree. After browsing Google for a few hours, and trying various examples of people using Vectors, I just can't seem to get my program to work using Object Oriented Programming with an instance of the class Person.
My two classes are Person, and BinarySearchTree as follows:
class Person{
private:
string first_surname;
string second_surname;
string name;
int ID;
[Code] ....
Ok so my text file saves the data of each person in the same order as the class with each value separated by a semicolon.
i.e. First_Surname;Second_Surname;Name;ID;Telephone;Score;
void fillTree( BinarySearchTree *b) {
string input[7];
Person p;
fstream file("scores.txt", ios::in); // reads text file
if(file.is_open()) {
[Code] ....
I understand that I get an error because a vector is saved as integers, and I am using strings, my question is, any other way to read the .txt file and save each data separated by a semicolon, into the Person class?
How would I store a 234 tree in a binary file?
I've never worked with trees or binary files before so it is very confusing.
I'm trying to implement a binary tree using this class:
class btree {
public:
int key;
btree *left;
btree *right;
btree(){left=NULL; right=NULL;}
void insert(int key);
[Code] ....
gives me the following error:
albero_binario1.cpp: In member function ‘void btree::insert(int)’:
albero_binario1.cpp:34:18: error: lvalue required as left operand of assignment
albero_binario1.cpp:39:15: error: request for member ‘insert’ in ‘((btree*)this)->btree::right’, which is of non-class type ‘btree*’
albero_binario1.cpp:41:14: error: request for member ‘insert’ in ‘((btree*)this)->btree::left’, which is of non-class type ‘btree*’
what can i do?
I am not sure how to use the parameters ostream and enum type in a print function.
enum TraversalOrderType {preorder, inorder, postorder};
template <class ItemType>
void Tree<ItemType>::print(ostream & Outstream, TraversalOrderType order) {
[Code] ....
Is this the correct way to call the print function?
int main() {
Tree<int> tree1;
tree1.print(cout, preorder);
return 0;
}
I don't know why, but my remove function doesn't seem to operate properly. The rest of my code is fine, so I am trying to pinpoint the exact location of my error. The else if statement remove(root->left, data) should've been called twice, but it only called once.
BST* smallestNode(BST* root)
// precondition: T is not null
// postcondition: return the node in the subtree rooted at T that
[Code]....