//
// compile:  setenv LIBRARY_PATH .
//	
// g++ -g -I../include g.cc libgraph.a libbasic.a 
//
#include<iostream.h>
#include<stdio.h>
#include<LINK/graph/UBinGraph.h>
#include<LINK/basic/List.h>
#include<LINK/basic/DList.h>
#include<LINK/graph/Vertex.h>
#include<LINK/basic/Set.h>
#include<LINK/basic/Sequence.h>

void main()
{
	DList<List<Vertex*>* > l;
	List<Vertex*> l1, l2, l3, l4, l5, l6, l7, l8, l9;
	ContainerNode *cn;
	UBinGraph g;
	char name[20];
	for (int i=1; i<12; i++) {
		sprintf(name, "%d", i);
		g.addVertex(name);
	}
	Vertex** va = g.vertexStart();
	l1.append(va[6]); l1.append(va[7]); l1.append(va[9]);
	l3.append(va[4]);
	l6.append(va[5]);
	l8.append(va[10]);

	l.append(&l7); 
	l.append(&l8);
	cn = l.search(&l7);
	l.insertBefore(&l6, cn); 
	cn = l.search(&l6);
	cn = l.insertBefore(&l5, cn); 
	cn = l.search(&l5);
	cn = l.insertBefore(&l4, cn); 
	cn = l.search(&l4);
	cn = l.insertBefore(&l3, cn); 
	cn = l.search(&l3);
	cn = l.insertBefore(&l2, cn); 
	cn = l.search(&l2);
	cn = l.insertBefore(&l1, cn);

	cout << l << endl;
	cn = l.search(&l1);
	cn = l.insertBefore((List<Vertex*>* ) 0, cn);
	cout << l << endl;
}
