35 häufig gestellte Fragen im Vorstellungsgespräch zur Datenstruktur (plus Beispielantworten)
15. September 2021
Wenn Sie auf der Suche nach einer Stelle im Bereich Programmierung, Codierung oder Softwareentwicklung sind, sollten Sie bereit sein, im Vorstellungsgespräch Fragen zu Datenstruktur und Algorithmen zu beantworten. Die Durchsicht häufiger Fragen kann Ihnen dabei helfen, eine umfassende und detaillierte Antwort vorzubereiten, mit der Sie den Personalmanager beeindrucken. In diesem Artikel gehen wir auf häufige Interviewfragen zu Algorithmen und Datenstrukturen ein und geben Beispielantworten, die Ihnen bei der Vorbereitung auf Ihr nächstes Interview helfen.
Fragen zu Erfahrung und Hintergrund
Diese allgemeinen Fragen sollen Auskunft über Ihre spezifischen Kenntnisse und Fähigkeiten geben:
Wie haben Sie das Programmieren gelernt?
Auf welche Uni bist du gegangen gegangen?
Was war Ihr Spezialgebiet?
Was ist ihr höchster Bildungsgrad?
Wie lange programmieren Sie schon?
Wie hat Sie Ihre letzte Position auf diese Rolle vorbereitet?
War Ihre letzte Position mit Datenstrukturen verbunden?
Arbeiten Sie gerne im Team?
Können Sie Kollegen, die mit Programmierung nicht vertraut sind, Datenstrukturen erklären?
Waren Sie zuvor in einer Führungsposition tätig?
Fragen zu gängigen Datenstrukturen
Ihre Antworten auf diese häufig gestellten Fragen zeigen dem Interviewer, dass Sie verstehen, wie Datenstrukturen funktionieren.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Was ist eine Datenstruktur?
Was ist ein Array?
Was ist ein mehrdimensionales Array?
Was ist eine Datenstruktur einer verknüpften Liste?
Was ist eine rekursive Datenstruktur?
Was ist String-Kodierung?
Was ist ein Binärbaum?
Was ist Zusammenführungssortierung?
Was ist der Unterschied zwischen „null“ und „void“?
Was ist der Unterschied zwischen „Push“ und „Pop“?
Was ist Datenabstraktion?
Was ist ein Postfix-Ausdruck?
Was ist eine Warteschlange?
Was ist der Huffman-Algorithmus?
Wie viele Warteschlangen benötigen Sie, um eine Prioritätswarteschlange auszuführen?
Interviewfragen zu Algorithmen und Datenstrukturen
Hier finden Sie allgemeine Fragen zu Algorithmen und Datenstrukturen mit Erläuterungen und Beispielantworten.
1. Wo sollen Datenstrukturen eingesetzt werden?
Ihre Antwort zeigt, dass Sie verstehen, was das interviewende Unternehmen tut. Zeigen Sie, dass Sie Ihre Daten sinnvoll strukturieren können, indem Sie auf unternehmensspezifische Elemente verweisen.
Beispiel: „Datenstrukturen können überall dort effektiv genutzt werden, wo Daten vorhanden sind.“ Am nützlichsten ist es jedoch bei der Datenbankverwaltung, Zahlenanalyse, Grafik und Kompilierung.“
2. Wie würden Sie Duplikate aus einem bestimmten Array in Java entfernen?
Ein Array ist eine Struktur, die die meisten Programmiersprachen verwenden, um andere Datenstrukturen wie Zeichenfolgen, Stapel, Warteschlangen und Listen zu implementieren. Da es sich um eine grundlegende Datenstruktur handelt, können während des Interviewprozesses verschiedene Array-bezogene Fragen auf Sie zukommen. Um diese Frage zu Java-Arrays erfolgreich beantworten zu können, müssen Sie über grundlegende Java-Kenntnisse und die Verwendung von Konstruktoren wie Rekursion und Schleifen verfügen.
Beispiel: „Ich kann zwei Möglichkeiten beschreiben, wie Sie dies tun können. Erstens können Sie einen Iterator verwenden. Dazu müssen Sie eine neue ArrayList erstellen. Anschließend müssen Sie die ursprüngliche ArrayList durchlaufen, die doppelte Werte enthält, und das erste Vorkommen jedes Elements in der neuen ArrayList mithilfe der Methode „contains()“ speichern. Die zweite ArrayList enthält alle Elemente des ursprünglichen Arrays abzüglich der doppelten Elemente.
Die zweite und beste Möglichkeit, Duplikate aus einem Array zu entfernen, besteht darin, ein LinkedHashSet aus der ursprünglichen ArrayList zu erstellen, das Duplikate automatisch entfernt, da Letzteres nicht zulässig ist. Das LinkedHasSet sollte zurück in eine ArrayList konvertiert werden, die dann alle Elemente enthält, wobei die Duplikate entfernt wurden.“
3. Wann sollte die binäre Suche verwendet werden?
Ein Personalmanager könnte eine Frage wie diese stellen, um Ihre Entscheidungsfähigkeiten zu testen. Antworten Sie selbstbewusst und geben Sie ein Beispiel aus der Praxis, das auf das einstellende Unternehmen zutrifft.
Beispiel: „Sie können einen binären Suchalgorithmus mit einer Liste geordneter und sortierter Elemente verwenden.“ Die Suche beginnt in der Mitte der Liste und entscheidet dann, ob am oberen oder unteren Ende weiter gesucht werden soll.“
4. Wie würden Sie eine Schleife in einer verknüpften Liste erkennen und entfernen?
Eine verknüpfte Liste ist eine Datenstruktur, die wie ein Array linear ist. Während ein Array seine Elemente jedoch an zusammenhängenden Orten speichert, speichern verknüpfte Listen Elemente zufällig und verknüpfen sie mithilfe von Zeigern miteinander. Typischerweise ist eine verknüpfte Liste eine Datenstruktur, die aus Knoten besteht, von denen jeder aus einem Datenfeld und einem Link besteht, der auf den nächsten Knoten in der Liste verweist. Schleifen in einer verknüpften Liste können Fehler im Programm verursachen. Um diese Frage gut beantworten zu können, müssen Sie über gute Kenntnisse der Rekursion verfügen, da es sich um eine rekursive Datenstruktur handelt.
Beispiel: „Um eine Schleife in einer verknüpften Liste zu erkennen und zu entfernen, würden Sie eine Funktion „DetectAndRemoveLoop“ schreiben, die prüft, ob eine Schleife in der verknüpften Liste vorhanden ist, diese dann entfernt, wenn sie vorhanden ist, und dann „true“ zurückgibt.“ Wenn keine Schleife erkannt wird, gibt die Funktion „false“ zurück.
5. Schreiben Sie bei einer gegebenen ganzen Zahl „n“ eine Funktion zur Berechnung der n-ten Fibonacci-Zahl.
Bei der dynamischen Programmierung wird ein komplexes Problem in einfachere Teilprobleme zerlegt und die Lösung für jedes Teilproblem gespeichert. Somit muss der Programmierer die Lösung nicht neu berechnen. Die Verwendung der Fibonacci-Folge kann die Programmausführungszeit verkürzen. Um diese Frage zu beantworten, müssen Sie mit Algorithmen und Programmierung vertraut sein, da es viele verschiedene Methoden zum Schreiben dieser Sequenz gibt.
Beispiel:
„public long fibonacci (integer x) {
wenn (x
if (x == 0) return 0;
long() Cache = new Long(x + 1);
für (int i = 1; i
stash(1) = 1;
return fibonacci(x, Cache);
}
privater langer Fibonacci(int x, long() Cache) {
if (cache(x) >-1) return Cache(x);
Cache(x) = Fibonacci (x – 1, Cache) + Fibonacci (x – 2, Cache);
Cache(x) zurückgeben;
}“
6. Wie implementiert man die Rekursion der Baumdurchquerung in umgekehrter Reihenfolge?
Ein Binärbaum ist eine Datenstruktur, die im Gegensatz zu Arrays und verknüpften Listen Elemente hierarchisch und nicht linear speichert. Diese Binärbaumfragen testen Ihre Fähigkeit, einen Ausdruck auszuwerten oder zu entfernen. Um diese Frage zu beantworten, müssen Sie klar zeigen können, wie Sie eine Post-Order-Rekursion erstellen, damit der Personalmanager Ihren Prozess sehen kann.
Beispiel: Das Durchlaufen des Baums des Knotens „n“ in umgekehrter Reihenfolge umfasst die folgenden Schritte, beginnend bei der Wurzel:
Der linke Teilbaum von n wird durch den Aufruf von printPostorder(n.left) durchlaufen.
Der rechte Teilbaum von n wird durch den Aufruf von printPostorder(n.right) durchlaufen.
Dann wird Knoten n selbst besucht.
In Verbindung gebracht: 7 praktische Tipps für Vorstellungsgespräche**
7. Wie kann man feststellen, dass zwei ganze Zahlen entgegengesetzte Vorzeichen haben?
Die Bitmanipulation ermöglicht es dem Programmierer, Bits zu manipulieren, im Gegensatz zu den Abstraktionen, die in modernen Programmiersprachen verwendet werden. Sie verwenden diese Art der Programmierung typischerweise für die Erkennung und Korrektur von Algorithmen, die Geräteverwaltung auf niedriger Ebene, die Datenkomprimierung, Optimierungsalgorithmen und die Verschlüsselung. Bei der Bitmanipulation werden bitweise Operationen verwendet. Hierbei handelt es sich um eine Operationsschicht, die einzelne Bits, die kleinsten Dateneinheiten, bearbeitet. Um Fragen zur Bitmanipulation beantworten zu können, müssen Sie mit Bitoperationen vertraut sein.
Beispiel: „Wenn zwei ganze Zahlen entgegengesetzte Vorzeichen haben, bedeutet das, dass ihre höchstwertigen Bits unterschiedlich sind. Das höchstwertige Bit jeder negativen Zahl ist immer eins, während das höchstwertige Bit positiver Zahlen immer Null ist. Wenn Sie den bitweisen Exklusiv-ODER-Operator (XOR „^“) auf zwei Ganzzahlen mit entgegengesetzten Vorzeichen anwenden, erhalten Sie eine negative Zahl. Das heißt, wenn der XOR-Operator auf zwei ganze Zahlen angewendet wird und kleiner als Null zurückgibt, haben die beiden Zahlen entgegengesetzte Vorzeichen.“
Wenn Sie an einem Vorstellungsgespräch teilnehmen, das möglicherweise Programmierfragen beinhaltet, denken Sie darüber nach, ein Notizbuch und Schreibutensilien mitzubringen, damit Sie visuelle Antworten geben können. Möglicherweise gibt es im Interviewraum ein Whiteboard, auf das Sie Codezeilen schreiben können, Sie müssen jedoch mit Ihren eigenen Schreibutensilien zum Interview gehen.
8. Mit welcher Datenstruktur können Sie die Elemente einer verknüpften Liste einfach bearbeiten?
Ihre Antwort zeigt dem Interviewer, dass Sie verschiedene Formen von Datenstrukturen verstehen. Es zeigt auch Ihre Fähigkeit, Probleme zu lösen, Prioritäten zu setzen und schnelle Entscheidungen zu treffen.
Beispiel: „Die beste Datenstruktur zum Verschieben verknüpfter Listenelemente ist eine verknüpfte Listenstruktur. Sie ändern nur die Liste, erstellen kein Array.“
9. Erklären Sie den Unterschied zwischen einem Array und einem Stapel
Ihre Antwort wird zeigen, wie einfach Sie allgemeine Datenstrukturbegriffe diskutieren können. Fügen Sie gegebenenfalls ein Beispiel hinzu, wie sich die Unterschiede zwischen einem Array und einem Stack auf das interviewende Unternehmen auswirken könnten.
Beispiel: „Stacks und Arrays speichern Daten auf zwei verschiedene Arten. Erstens der Datentyp. Stacks können Daten unterschiedlichen Typs speichern, während Arrays Daten desselben Typs speichern. Zweitens die Größe der Struktur. Die Größe der Stapel ändert sich, wenn Elemente entfernt oder hinzugefügt werden. Arrays ändern ihre Größe nicht.“
10. Erklären Sie den Unterschied zwischen linearer Datenstruktur und hierarchischer Datenstruktur.
Ihre Antwort sollte Ihr Wissen über die zugrunde liegende Datenstruktur belegen. Außerdem zeigt es dem Personalmanager, dass Sie Programmierbegriffe und -ideen klar erklären können.
Beispiel: „Lineare Datenstrukturen und hierarchische Datenstrukturen beschreiben Beziehungen zwischen Datenelementen, unterscheiden sich jedoch in der Art und Weise, wie die Daten interagieren.“ Lineare Datenstrukturen organisieren Daten in einer einstufigen Reihenfolge. Hierarchische Datenstrukturen organisieren Daten in einer mehrstufigen Konfiguration.“