Exemple #1
0
int main()
{
	ptrGraph G;
	Indegree inDegree[MAXVEX];
	int tmp;

	G = InitializeGraph(7);
	AddVertex(1, 0, G);
	AddVertex(2, 1, G);
	AddVertex(3, 2, G);
	AddVertex(4, 3, G);
	AddVertex(5, 4, G);
	AddVertex(6, 5, G);
	AddVertex(7, 6, G);
	
	AddEdge(1, 2, G);
	AddEdge(1, 3, G);
	AddEdge(1, 4, G);

	AddEdge(2, 4, G);
	AddEdge(2, 5, G);
	AddEdge(3, 6, G);

	AddEdge(4, 7, G);
	AddEdge(4, 3, G);
	AddEdge(4, 6, G);

	AddEdge(5, 4, G);
	AddEdge(5, 7, G);
	AddEdge(7, 6, G);

	GetIndegree(inDegree, G->numVertexes, G);
	//tmp = FindNewVertexOfIndegreeZero(inDegree, G->numVertexes);
	TopSort(inDegree, G->numVertexes, G);
}
void BellmanFord(struct Graph* graph, int src)
{
    int V = graph->V;
    int E = graph->E;
    int dist[graph->V];
 
	InitializeGraph(dist, V, src);
	RelaxEdges(graph, dist, V, E);
	CheckNegativeWeightCycle(graph, dist, E); 
    printResults(dist, V);
 
}
HRESULT DShowPlayer::OpenFile(const WCHAR* sFileName)
{
	HRESULT hr = S_OK;

	IBaseFilter *pSource = NULL;

	// Create a new filter graph. (This also closes the old one, if any.)
	hr = InitializeGraph();
	
	// Add the source filter to the graph.
	if (SUCCEEDED(hr))
	{
		hr = m_pGraph->AddSourceFilter(sFileName, NULL, &pSource);
	}

	// Try to render the streams.
	if (SUCCEEDED(hr))
	{
		hr = RenderStreams(pSource);
	}

	// Get the seeking capabilities.
	if (SUCCEEDED(hr))
	{
		hr = m_pSeek->GetCapabilities(&m_seekCaps);
	}

    // Set the volume.
	if (SUCCEEDED(hr))
	{
		hr = UpdateVolume();
	}

	// Update our state.
	if (SUCCEEDED(hr))
	{
		m_state = STATE_STOPPED;
	}

	SAFE_RELEASE(pSource);

	return hr;
}