C++ :: How To Create Tree Data Structure With Boost
Oct 1, 2013There seems to be lacking support for tree data structure. You have to implement it yourself?
View 2 RepliesThere seems to be lacking support for tree data structure. You have to implement it yourself?
View 2 RepliesI wonder are there boost available structures that act pretty much the same as binary heaps of C# in VC++?
like this code snippet in C#
Code:
BinaryHeap<Node> OpenList = new BinaryHeap<Node>();
BinaryHeap<Node> ClosedList = new BinaryHeap<Node>();
Code:
namespace LibAStar {
/// <summary>
/// A binary heap, useful for sorting data and priority queues.
/// </summary>
/// <typeparam name="T"><![CDATA[IComparable<T> type of item in the heap]]>.</typeparam>
public class BinaryHeap<T> : ICollection<T> where T : IComparable<T> {
// Constants
[code].....
Given a product category and subcategory representation:
a. Come up with a tree data structure to minimally (in terms of storage) represent this
b. Write a program to convert the given representation (shown in example below) to this
c. Write a function to output the tree structure in a nice human readable format
Note:
a. There can be any number of levels of depth
b. Rows may be repeated in input, but need to feature only once in the final tree.
Example category list (read this input from a file):
everything else|office supplies
electronics|video games
electronics|video games|accessories
electronics|video games|accessories|headsets
electronics|video games|accessories|flight controls
electronics|video games|accessories|joysticks
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,.
// This program creates a structure to hold data for a kennel
#include<iostream.h>
struct KennelList {
int dogID;
char gender;
int age;
[Code] ....
well i create a State.h class
#ifndef STATE.H
#define STATE_H
class State {
public:
virtual void handle_action() = 0;
virtual void update() = 0;
virtual void render() = 0;
};
#endif //STATE.H
What i'm trying to create is a simple State Manager for SFML! I created another class that inherits State.
#pragma once
#include "state.h"
class FirstState : public State {
public:
FirstState();
~FirstState();
void handle_action();
void update();
void render();
};
So the question is this, each state that i have will inherit the State class. However, i wanted to perhaps add each state object into a vector array. But i'm not sure as to what data type it be? I have a state manager class that will contain the vector.
What i want to do is this, each game state will create an object that will inherit functions from the state.h class. I want to store them all in a vector array, but each object is clearly named different. My curiosity was wondering, since all those different states inherit the State.h class, can i simply create a State Object std::vector<State> *states; that will contain all those different state objects?
[URL]....
I've been studying metaprogramming and reviewing many documents and code regarding boost files. What I've been trying to understand and accomplish is creating various types using typedef, template and struct, similar to that of the boost files themselves, to create comparators. Ultimately, I want to be able to create a type that has sub-properties which can be further compared and classified.
Informal example:
create type
typedef int coordinate[3];
create standards - "typeless prototypes"
static const coordinate _x = {1,0,0};
static const coordinate _y = {0,1,0};
static const coordinate _z = {0,0,1};
We "now have" three variables under one unique type. Now I want to wrap this further to work with other types (int, float, etc.).
create special cases
template<class ty, coordinate c> struct coord_type;
typedef coord_type<int,x> x_i;
typedef coord_type<float,x> x_f;
typedef coord_type<int,y> y_i;
typedef coord_type<float,y> y_f;
typedef coord_type<int,z> z_i;
typedef coord_type<float,z> z_f;
declare more standards
const x_i i_i;
const x_f i_f;
const y_i j_i;
const y_f j_f;
const z_i k_i;
const z_f k_f;
Where other variables can be represented based off this i,j,k standard and written in a more direct vector form.
And so on...
What I essentially would like to do is have x,y,z variables act as standards for an i,j,k system that classify arbitrary variables of the coordinate type: Is the arbitrary variable i, j, or k? Is it defined as an int or float type?
Where arguments such as sum_y = var1 + var2; are valid, provided:
sum_y is outputted as 6j, and var1 and var2 are 2j and 4j, respectively.
how I can create a structure that pointing to another different structure. And also passing structure to function.
View 3 Replies View RelatedSo i am implementing the class LinkedBinaryTree and i am aplying "Depth and Height" and "A linked structure for binary tree".
#include <iostream>
using namespace std;
// InspectableContainer
template <typename Object>
class InspectableContainer {
public:
int size();
bool isEmpty() const;
[Code] .....
How would I go about creating a tree like structure using linked lists, I am thinking of making a rubix cube solver program, what I want to do create nodes that each do one operation like turn left, right, up, down but I dont know how to go about starting this.
View 2 Replies View RelatedI am trying to read/write binary trees to a file for a little project I'm working on for fun. I got frustrated and gave up; now, I am trying again! So I am writing the tree to file (or, rather, to string for now) like so:
string wBinTree(node *p)
{
string str = "";
[Code]....
But now I'm completely lost as to recreating the tree from a string. I thought of perhaps using an array/vector/string of 1's and 0's or trues and falses to keep track of where I was in the tree, but it's really beyond me.
I'm trying to create an avl tree where it's key value will be a string,however when I tried to convert the example in my book examples,which uses int,to char* the complier just shows up segmentation fault error This is the code I have:
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <stdlib.h>
// An AVL tree node
struct node {
char *key;
struct node *left;
struct node *right;
[Code] .....
Create an a simple Payroll Management Application using the concept of Binary Tree. The program will allow you to add, sort, view, search record. The application have also the capability to save and retrieve data in a file.
View 1 Replies View RelatedWe are told to modify this code following the instructions given within the code. It is a tictactoe program.
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// Create a structure that stores a player's name (up to 20 characters) and score (# of wins)
// Call the struct Player
void info(void) {
printf("
[Code] ....
I've ended up with the following code, but the part about the name of the datafile is giving errors upon running the program.
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// Create a structure that stores a player's name (up to 20 characters) and score (# of wins)
// Call the struct Player
typedef struct {
[Code] ....
I was trying to apply what is here (as someone who writes rarely and has to relearn everything each time): [URL] ....
I'm using a header file to define the structure:
#ifndef EINSTEIN_H
#define EINSTEIN_H
#include <stdio.h>
#include <vector>
struct SizeAll{
double year;
double R;
SizeAll() { year = 0; R = 0; }
[Code] ...
This creates quite a mess. It seems that somehow the "vector" declaration isn't working as the referenced web link seems to suggest that it should. I presume that, as usual, clearing one real error will eliminate the cascade of errors the first real error produces. Why won't VC++ accept the "vector" identifier?
The error messages that follow the build attempt are:
Friedman.cpp
d:documents and settingsxxmy documentsvisual studio 2010projectsfriedmanfriedmanEinstein.h(22):
warning C4996: 'fopen': This function or variable may be unsafe.
Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
[Code] .....
I need to dynamically create a new Memo structure to hold memorized fib #'s.I have two structures:
Code:
typedef struct HugeInteger
{
//array to hold the digits of a huge integer
int *digits;
//number of digits in the huge integer
int length;
}
[code]....
am having trouble with initializing the struct inside of the new Memo, I need the digit fields to null and the length field to 0 to indicate that F[i] has not yet been memoized...I have F->digits and F->length in the for loop but this just simply doesn't work..
I am using Dev C++ compiler on Windows 7 and was programming a piece of code that is supposed to do the following -
Create a structure to store information about products for sale in a store. It should store information about the product name, the price, and the product number and then create an array of products called Inventory. Add five products to your inventory.
But for some reason, which is unknown to me, I always seem to get a compiler error. And this is what i have so far -
Code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct product{
char name[30];
int product_number;
double price;
[Code] ....
I am trying to create a class type structure using struct instead of classes.
Code:
#include <iostream>
#include <stdlib.h>
using namespace std;
struct myclass {
int * array;
int nelements;
[Code] ....
Guess what I am asking is using the pointer in the first code section better or is there another way'. I don't know about making the second code work.
how to use a Class structure to create a program that reads in two rational numbers and adds them, subtracts, multiplies, and divides them.
View 3 Replies View RelatedI was working with binary search tree and came up with the solution:
Code:
#include<stdio.h>
#include<stdlib.h>
typedef struct data {
int x;
struct data *left;
struct data *right;
[Code] .....
I want a recursive function that returns a pointer pointing to the node which has the minimum data in the binary tree.
That's what I wrote:
struct CP {
int data; // data of the node
CP * left; // pointer to the left subtree
CP * right; // pointer to the right subtree
[Code]....
It can only find one side of the binary tree.
The Problem You are part of a company writing a spreadsheet program. As you know, spreadsheets can be sorted on any column. You're part of the project is to write one binary tree function to sort the data [Hint: use different fields when inserting nodes in the tree.] and a second function to list it in either an ascending or descending sequence. [Note: Each of these functions may actually need to be a set of related functions.]
For sample data you will have a disk file containing information about Shakespeare's plays. Your first function should create a tree based on the sort selected by the user and the second function to display the data in the sequence selected by the user. Regardless of the column being sorted, data in individual records always be displayed in the same line of the output.
Input : Each record will contain the following information: First Performed 9 characters Printed 5 characters Title 26 characters Type 7 characters
Output : Tabular output should be aligned in columns with two spaces between each. All columns should have headings. It should be sorted on the column specified by the user.
Example (This sample data provided so you can test your program.) If the data is:
1595-96 1600 A Midsummer Night's Dream Comedy
1594-95 1623 Two Gentlemen of Verona Comedy
1596-97 1623 King John History
1597-98 1598 Henry IV, Part 1 History
1611-12 1623 The Tempest Comedy
1602-03 1623 All's Well That Ends Well Comedy
[Code]...
Source: [URL]...
Possible outputs are
1 - for a sort by title: First
Performed Printed Title Type
--------- ------- -------------------------- -------
1595-96 1600 A Midsummer Night's Dream Comedy
1602-03 1623 All's Well That Ends Well Comedy
1606-07 1623 Antony and Cleopatra Tragedy
1599-1600 1623 As You Like It Comedy
[Code]....
2 - for a sort by first performed: First
Performed Printed Title Type
--------- ------- -------------------------- -------
1590-91 1594? Henry VI, Part 2 History
1590-91 1594? Henry VI, Part 3 History
1591-92 1623 Henry VI, Part 1 History
1592-93 1623 Comedy of Errors Comedy
1592-93 1597 Richard III History
[Code]....
I want to display my data in rich-text box in the tree like structure,i fetch the data from the data base MSACCESS & i want to print it on my rich-textbox, what can i do ?
exampale is :-A
|
|__A1
| |_A1_1
| |_A1_2
|__A2
|__A3
|_A3_1
|_A3_2
like this in rich textbox
I'm trying to create a new data type Data declared as int. What comes up to my mind is to create a structure like
Code:
typedef struct Data {
int number;
} Data;
but when I need to use the data I need to go through the structure. Is this a good way to declare a new data type?
how to solve this undeclared error when compiling this code. I assume it has something to do with scope.
C code - 47 lines - codepad
Code:
#include <stdio.h>
int main(void) {
struct bank_account {
[Code].....
I am trying to create an structure of data with following elements:
struct stest {
std::vector<int> na;
std::vector<double> nb;
std::vector<double> va;
std::vector<double> vb;
std::vector<double> vc;
std::vector<double> vd;
}
I would like to modify the composition of this struct, so that I can create a special data structure by
vector<stest*> data_test;
for(int i = 0; i < 10; i++)
data_test.push_Back(new stest);
within this structure, I have: only one na and one nb, but ten groups of combination of va, vb, vc, vd that I can access by pointer, which means na, nb are independent but still inside of the structure.