Files
pisi/tree/main.cpp
T
Gürer Özen 8bca914561 sadeleştirme.
2005-06-03 18:10:51 +00:00

84 lines
2.0 KiB
C++

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include "tree.hh"
using namespace std;
class Package
{
public:
Package( string name ) { this->name = name; };
~Package() {};
string getName() { return this->name; };
private:
string name;
};
typedef tree<Package> Tree;
int main(int argc, char *argv[])
{
vector<string> dependencies;
Package *kdebase = new Package("kdebase");
Package *kdelibs = new Package("kdelibs");
Package *kdeartwork = new Package("kdeartwork");
Package *kdepim = new Package("kdepim");
Package *glibc = new Package("glibc");
Package *gcc = new Package("gcc");
Package *xorg = new Package("xorg-x11");
Tree depTree;
Tree::iterator top, element;
top = depTree.begin();
/*
* kde_
* |_kdebase_
* | |_kdelibs
* | |_kdeartwork_
* | |
* | |_xorg-x11_
* | |_glibc
* | |_gcc
* |
* |_kdepim_
* |_xorg-x11_
* |_glibc
* |_gcc
*/
element = depTree.insert( top, *kdebase );
depTree.append_child( element, *kdelibs );
element = depTree.append_child( element, *kdeartwork );
element = depTree.append_child( element, *xorg );
depTree.append_child( element, *glibc );
depTree.append_child( element, *gcc );
element = depTree.insert( top, *kdepim );
element = depTree.append_child( element, *xorg );
depTree.append_child( element, *glibc );
depTree.append_child( element, *gcc );
cout << "...Tracked Dependencies..." << endl;
Tree::post_order_iterator sib_post = depTree.begin_post();
while( sib_post != depTree.end_post() )
{
vector<string>::iterator p = find( dependencies.begin(), dependencies.end(), sib_post->getName() );
if( p == dependencies.end() )
dependencies.push_back( sib_post->getName() );
++sib_post;
}
for( int i = 0; i < dependencies.size(); i++ )
cout << dependencies[i] << endl;
return 0;
}