C++ School Assignment? Project Due Tomorrow? Chat LIVE With A Programming Expert!

Welcome to Dream.In.Code
Become a C++ Expert!

Join 309,262 C++ Programmers for FREE! Get instant access to thousands of C++ experts, tutorials, code snippets, and more! There are 2,449 people online right now. Registration is fast and FREE... Join Now!




General Tree in C++

 

General Tree in C++

didijc

3 Jul, 2009 - 07:40 AM
Post #1

New D.I.C Head
*

Joined: 3 Jul, 2009
Posts: 1

Good morning everyone...

I'm hoping someone can see what it is I'm doing wrong here -- basically the code complies however I get a run time error and I'm no sure why....

help, please...

CODE

/////// ********* GeneralTree.h *********///////
///////-------------------------------------///////
#ifndef GENERALTREE_h
#define GENERALTREE_h

#include <iostream>

using namespace std;

class GeneralTree{
    public:
        struct GenTreeNode{
            int int_transactionID, int_totalNumChildren;
            GenTreeNode *ptr_nextChild;
        };
        
        //initialize root
        GenTreeNode *root;

        GeneralTree(){
            int int_totalNumChildren = 0;
        }

        ~GeneralTree(){
            clear();
        }

        void clear(){
            //point to the node to be deleted
            GenTreeNode *tmp;
            //used to visit each node in the tree.
                        //We start with the first actual node off of "root"
            GenTreeNode *traverse = root->ptr_nextChild;
            
            //while the tree is not empty
            while(traverse != NULL){
                //store the current node
                tmp = traverse;
                //visit the next node
                traverse = traverse->ptr_nextChild;
                //free the memory taken up by the current node
                delete tmp;
            }
        }

        void addChildren(int *tranID, int cNo){
            int int_totalNumChildren = cNo;
            GenTreeNode *genTree = new GenTreeNode[int_totalNumChildren];

            for(int i=0; i<int_totalNumChildren; i++){
                genTree->int_transactionID = tranID[i];
            }
        }

        void PrintTree(GenTreeNode *tree) {
            /* .: Print all the items in the tree to which root points...the item in the root is printed first, followed by its children :: as long as the root is not empty :. */
            if (tree != NULL){
                cout << tree->int_transactionID << " ::- " << tree->int_totalNumChildren << endl;
                // Print children
                PrintTree(tree->ptr_nextChild);
            }
        }

        void deleteChild(GenTreeNode *ChildPtr){
        }
};

#endif


CODE

/////// ********* Main.cpp *********///////
///////-------------------------------///////
#include <iostream>
#include <fstream>
#include "GeneralTree.h"

using namespace std;

int main(){
    GeneralTree *gTree = new GeneralTree;
    int tID = 100;
    int numOfChildren = 10;

    cfisTree->addChildren(&tID, numOfChildren);
    cfisTree->PrintTree(gTree->root);

    return 0;
}


User is offlineProfile CardPM
+Quote Post


Posts in this topic

Reply to this topicStart new topic

Time is now: 11/26/09 10:17AM

Live C++ Help!

Be Social

Dream.In.Code RSS Feed Dream.In.Code LinkedIn Group Follow Us On Twitter Fan Us On Facebook

C++ Tutorials

Reference Sheets

C++ Snippets

DIC Chatroom

Bye Bye Ads

Monthly Drawing

Thumb Drive

Top Contributors

Top 10 Kudos This Month