C Array bei Tiefensuche mit Werten befüllen

elomanias

Ensign
Registriert
Mai 2011
Beiträge
154
Hi
ich hoffe einer von euch kann mir helfen

ich habe mal als übung nen Binärbaum programmiert in C.
Erstellen, Werte einfügen, löschen funktioniert
Tiefensuche nun auch.

Ich möchte nun eine Funktion schreiben die den Baum in Pre,post und inorder durchläuft (an sich kein Problem die Tiefensuche läuft ja) aber dazu möchte ich noch ein Array füllen in das der jeweilige Wert des besuchten Knotens eingefügt wird.

hier mal die preorder tiefensuche
Code:
bool bintree_dsearch(bintree *tree, int value)
	{
		if (value == tree->value)
		{return true;}
		if (tree->left != NULL)
		{return bintree_dsearch(tree->left, value);}
		if (tree->right != NULL)
		{return bintree_dsearch(tree->right, value);}
	}

ich möchte also das ein array bei jedem rekursiven durchlauf mit dem jeweiligen wert des besuchten Knotens gefüllt wird, so lange bis der durchlauf beendet wird.

Ich hoffe jemand kann mir helfen :)

Signatur der zu implementierenden Funktion sieht wie folgt aus

Code:
int *bintree_prefix(bintree *tree);

EDIT:
mein Bisheriger Ansatz
Code:
int i = 0;
int *bintree_prefix(bintree *tree)
	{
		uint64_t *prefixArray = malloc(inputArrayLength_helper*sizeof(uint64_t));

		//		while (i < inputArrayLength_helper)
		prefixArray[i]=tree->value;
		i++;
//		return (bintree_prefix(tree->left));
//		return (bintree_prefix(tree->right));

	}

die letzten beiden zeilen sind bewusst auskommentiert, da diese das programm killen, diese sollten eigentlich die rekursion in preorder durchführen, selbst auskommentiert wird das Array lediglich mit 0en befüllt, der erste Wert ist jedoch eine 10

inputArrayLenght_helper ist 17 ints groß, so groß wie das inputArray im Testprogramm, das alle implementierten Funktionen testet
 
Zuletzt bearbeitet:
Einfach mal so: NULL ist ein Zeiger und value vom Typ int. Zu deiner Frage: Hausaufgaben. Thread beendet.
 
asdfman schrieb:
Einfach mal so: NULL ist ein Zeiger und value vom Typ int. Zu deiner Frage: Hausaufgaben. Thread beendet.

das dies an sich schon ne Warning schmeisst weis ich. Die Funktion arbeitet dennoch Korrekt
 
Picard-facepalm.jpg
 
so korrigiert, läuft wie vorher

ich hoffe noch auf konstruktive Hilfe
 
Zurück
Oben