Note de curs, probleme algoritmică, 11 noiembrie 2013

From Algopedia
Revision as of 21:44, 29 November 2013 by Dan (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

În acest curs am reluat implementarea problemei Ciclu Eulerian.

Implementarea metodei hasNeighbour

bool hasNeighbour(int vertex) {
	for(int i=0; i < (int)Neighbours[vertex].size(); i++) {
		if (!Neighbours[vertex][i]->used) {
			return true;
		} else {
			Neighbours[vertex].erase(Neighbours[vertex].begin() + i);
			--i;
		}
	}
	return false;
}

Implementarea metodei nextNeighbour

int nextNeighbour(int vertex) {
	for(int i=0; i < (int)Neighbours[vertex].size(); i++) {
		if (Neighbours[vertex][i]->used==false) {
			return Neighbours[vertex][i];
		} else {
			Neighbours[vertex].erase(Neighbours[vertex].begin() + i);
			--i;
		}
	}
	return false;
}

Implementarea metodei printList

void printList(List cycle) {
	ListNode* node;
	for (node = cycle.firstNode; node != NULL; node = node->nextListNode) {
		printf("%d ",node->vertex);
	}
}

Extinderea ciclului inițial

Rămâne neimplementată extinderea ciclului inițial într-un ciclu eulerian.