Ich muss eine Funktion erstellen (mit Pseudocode), die Tiefe des angegebenen Elements in einem Array zurückgibt (mit optionalen Arrays innerhalb), zB:Finden der Tiefe des angegebenen Elements in einem Array von Arrays (oder Liste von Listen usw.)
def array[] = {"a", {"b", {"c"}, "d"}, {{{}}}, "e"};
für "e" sollte es 0 zurückgibt, für "c" es sollte den Wert 2 usw. Wenn es gibt kein bestimmtes Element in Array-Funktion sollte den Wert -1 zurück.
Ich habe ein paar Mal versucht, aber ich habe keine Ahnung, für elegant (und arbeiten ..) Lösung, nur so viel:
func foo(array[], var element) {
int depth = 0;
boolean found = false;
boolean recursion = false;
boolean foundInRecursion = false;
for (int i = 0; i < array.length; i++) {
if (array[i] instanceof array[]) {
depth++;
recursion = true;
foo(array[i], element);
recursion = false;
} else if (array[i] == element) {
if (recursion) {
foundInRecursion = true;
} else {
found = true;
}
}
}
if (foundInRecursion) {
return depth;
} else if (found){
return 0;
} else {
return -1;
}
}
ich wirklich jede mögliche Hilfe schätzen würde! Dank
Der Code funktioniert ordnungsgemäß. Es ist möglich, die aktuelle Tiefe zu überschreiten, um das Ganze rekursiv zu machen, ich habe es nicht so gemacht, um die Idee klarer zu zeigen. – avysk
danke für die Klarstellung - ich habe heute etwas gelernt. :) –