Posts

Showing posts with the label Recursion

How to recursively print STL-based trees

Image
There are plenty of resources on how we may recursively search and print the contents of binary trees. This example shows how to (recursively) make use of the Boost serialization libraries and streams in order to print the contents of a tree-like data structure. For more help on getting set up with the Boost libraries in Visual Studio environments, see these following links: https://www.technical-recipes.com/2012/using-boostpro-to-install-boost-library-packages/ https://www.technical-recipes.com/2011/how-to-install-the-boost-libraries-in-visual-studio/ This following 'Node' class stores a std::string text value. In place of things like linked lists or binary trees, the Node class uses a std::vector of Node objects: [code language="cpp"] #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/vector.hpp> #include <fstream> #include <vector> #include <iomanip...

A Simple Binary Tree Implementation in C++

Image
A very basic binary tree implementation in C++ that defines a binary tree node, adds new nodes and prints the tree. [code language="cpp"] #include <stdio.h> class Node { public: Node( int v ) { data = v; left = 0; right = 0; } int data; Node* left; Node* right; }; void Add( Node** root, Node* n ) { if ( !*root ) { *root = n; return; } if ( (*root)->data < n->data ) { Add( &(*root)->right, n ); } else { Add( &(*root)->left, n ); } } void Print( Node* node ) { if ( !node ) return; Print( node->left ); printf( "value = %i\n", node->data ); Print( node->right ); } int main() { Node* root = 0; Add( &root, new Node( 1 ) ); Add( &root, new Node( 2 ) ); Add( &root, new Node( -1 ) ); Add( &root, new Node( 12 ) ); Print( root ); return 0; } [/code] Output:

A Recursive Algorithm to Find all Paths Between Two Given Nodes in C++ and C#

Image
Problem Outline This I tackled previously when working on the design and implementation of routing optimization algorithms for telecommunications networks. Given that a wide area network with nodes and interconnecting links can be modelled as a graph with vertices and edges, the problem is to find all path combinations