public DukqstraTime(PulseGraph g, int source) {
		
		G=g;
		C= G.getCt();
		double x = (int)(Math.log(Math.sqrt(C))/Math.log(2))+0.0;
		Delta = (int)(Math.pow(2,x));
		numHigh = (int)(((C+1)/Delta))+1;
		//System.out.println(numHigh);
		lowLevelBuckets = new Bucket[Delta];
		highLevelBuckets = new AproxBucket[numHigh];
		
		G.getVertexByID(source).setMinTime(0);
		Snum = 0;
		numNodes = G.getNumNodes();
		indexL = 0;
		dL = 0;
		indexK = 1;
		dK = Delta;
		iH = -1;
		jH = -1;
		
		Bucket st =new Bucket(G.getVertexByID(source), 0);
		lowLevelBuckets[0] = st;
		//AproxBucket st2 =new AproxBucket(G.getVertexByID(source), 0);
		initializeBuckets();
		baseAproxBucket =  null;
		topAproxBucket = null;
	}