Favori | répondre interview programmeur, vous devez connaître les huit structures de données importantes

Source: Big Digest de données

thèse 2200 mots lecture recommandée 6 minutes.

Dans cet article, nous présentons une structure de données pour traiter avec le processus d'entrevue plusieurs programmeurs doivent maîtriser.

informaticien suisse Niklaus Wirth en 1976 a écrit un livre, intitulé « Les algorithmes + Structures de données = programmation. »

40 ans plus tard, cette équation est toujours considéré comme la vérité. Voilà pourquoi dans le processus d'entrevue, les ingénieurs logiciels doivent examiner la compréhension des structures de données.

Presque toutes les questions que l'intervieweur doit avoir une compréhension profonde des structures de données. Que vous entrez les recrues en milieu de travail (programme de formation collégial ou de deuxième cycle), ou a des décennies d'expérience dans les anciens combattants en milieu de travail.

Certaines questions d'entrevue seront explicitement mentionné certaines structures de données, par exemple, « donné un arbre binaire. » Alors que d'autres sont implicites face à des questions, telles que: « Nous voulons enregistrer le nombre de livres chaque auteur liés. »

Même pour certains travaux très basique, l'apprentissage structure de données est nécessaire. Alors, nous allons commencer par quelques concepts de base commencent à commencer.

Qu'est-ce qu'une structure de données?

En bref, la structure de données est un conteneur de stockage des données de mise en page particulière. Cette « mise en page » détermine la structure de données est efficace pour certaines opérations, alors que d'autres opérations sont inefficaces. Tout d'abord, nous devons comprendre les différentes structures de données, afin de sélectionner la structure de données les plus appropriées pour faire face à des problèmes pratiques.

Pourquoi avons-nous besoin d'une structure de données?

Les données en informatique entre l'entité la plus critique et la structure de données des données peuvent être stockées sous une certaine forme d'organisation, par conséquent, la valeur de la structure de données est de soi.

Peu importe quel problème vous résolvez la manière dont vous devez traiter les données - si elle concerne les salaires du personnel, le prix des actions, listes, achats annuaire téléphonique ou simplement question.

Les données nécessaires, stockées dans un format spécifique en fonction de différents scénarios. Il y a beaucoup de structure de données pour répondre aux besoins des données stockées dans des formats différents.

structure de données commune

Tout d'abord, la liste certains des plus structure de données commune, nous allons expliquer un par un:

  • tableau
  • cheminée
  • file
  • liste
  • arbre
  • carte
  • Trie (qui est une structure arborescente efficace, mais digne seule de la note)
  • table de hachage (table de hachage)
tableau

Les tableaux sont les structures de données les plus simples et les plus largement utilisés. D'autres structures de données, des piles, files d'attente, etc. par un tableau évolué. Ci-dessous est un simple tableau contient des éléments (1,2,3 et 4), la longueur du tableau 4.

Chaque élément de données est associé à une valeur positive, que l'on appelle l'indice, qui indique la position de chaque élément du tableau est situé. La plupart des langues définissent l'index initial sera égal à zéro.

Voici deux types de tableaux:

  •  Tableau à une dimension (comme indiqué ci-dessus)
  • tableau multidimensionnel (un tableau de tableaux)

Le fonctionnement de base du tableau

  • Insert-- insérer un élément à l'index spécifié
  • Get-- Renvoie la position d'index de l'élément
  • Delete-- éléments de remove index spécifié
  • Size-- obtenir le nombre d'éléments dans le tableau de tous

Interview questions fréquemment posées sur le tableau:

  • Vous cherchez un petit élément du second réseau
  • Trouver un tableau d'entiers n'est pas la première récurrente
  • Fusionner deux tableaux commandés
  • Les valeurs de réarrangement positives et négatives dans la matrice
cheminée

Le célèbre undo presque partout dans l'application arbitraire. Mais avez-vous déjà pensé à la façon dont il fonctionne? Les solutions à ce problème est l'ordre du statut final arrangement préalable, en bon état de fonctionnement de l'historique de stockage de mémoire (bien sûr, il sera limité à un certain nombre). Ce n'est pas moyen d'utiliser un tableau pour atteindre. Mais avec la pile, ce qui est très pratique.

Il peut être considéré comme un livre de pile empilés verticalement. Afin d'obtenir le milieu du livre, vous devez supprimer tous les livres placés en elle. Ceci est le LIFO (dernier entré, premier sorti) fonctionne.

La figure pile comprenant les trois éléments de données (1, 2 et 3), dans lequel le premier couvercle amovible 3 pour être:

Le fonctionnement de base de la pile

  • Push-- insérer un élément dans la partie supérieure
  • Pop-- revenir en arrière et retirer l'élément supérieur
  • isEmpty-- Si la pile est vide, renvoie true
  • Top-- éléments Top, mais ne supprime pas

Foire aux questions sur la pile d'entrevue:

  • expression postfixe en utilisant un calcul de la pile
  • Trie les éléments de la pile
  • Déterminer si une expression en équilibre des parenthèses
file

Semblable à la pile, la file d'attente est une structure de données d'un autre des éléments de mémorisation séquentiels linéaires. La plus grande différence est que la pile de file d'attente et la pile est une LIFO (dernier entré, premier sorti) et la file d'attente est le FIFO, à savoir, premier entré premier sorti.

Un exemple parfait de la réalité de la file d'attente: l'équipe de billetterie file d'attente. S'il y a des nouveaux venus, il a besoin d'aller à la file d'attente de queue, plutôt que la première équipe - la surface supérieure des premiers à obtenir des votes, puis quitter l'équipe.

La figure comprenant les quatre éléments de file d'attente (1,2,3 et 4), dans lequel le premier est retiré au sommet:

Retrait des éléments de la première équipe, l'insertion d'un nouvel élément

Le fonctionnement de base de la file d'attente

  • Enqueue () - est inséré dans la queue des éléments de file d'attente
  • Dequeue () - enlèvement de la tête des éléments de file d'attente
  • isEmpty () - si la file d'attente est vide, retourner true
  • Top () - renvoie le premier élément de la file d'attente

Foire aux questions sur la file d'attente d'entrevue:

  • Utilisation de la file d'attente représentée pile
  • Inverser premiers k éléments de la file d'attente
  • Générer des nombres binaires en utilisant une file d'attente de 1 à n,
liste

Une autre importante liste linéaire est une structure de données, un peu comme des tableaux peut à première vue, mais dans la mémoire d'attribution, une configuration interne et une insertion de données et les opérations de suppression aspects de base sont différents.

Comme une chaîne de noeuds de liste liée, où chaque noeud contient des pointeurs pointant vers les données et les noeuds suivants. Comprenant en outre un pointeur de tête de liste sur le premier élément de la liste, mais la liste est vide, ou point zéro, il n'y a pas de contenu spécifique.

Liste généralement utilisé pour mettre en uvre le système de fichiers, la table de hachage et contiguïté table.

Voici une liste montrant la structure interne de:

La liste comprend les types suivants:

  • à chaîne unique (unidirectionnel)
  • Liste Doublement liés (dans les deux sens)

La liste des opérations de base:

  • InsertAtEnd - élément spécifié est inséré à la fin de la liste
  • InsertAtHead - insérer l'élément spécifié au début de la liste liée / head
  • Supprimer - supprimer l'élément spécifié à partir d'une liste chaînée
  • DeleteAtHead - le premier élément d'une liste chaînée de supprimé
  • Recherche - Renvoie l'élément spécifié dans la liste
  • isEmpty - Si la liste est vide, return true

Interview liste des questions fréquemment posées au sujet:

  • liste inversée
  • Chaîne de détection de circulation
  • La liste résultante avant-dernier noeud N
  • Supprimer la liste des doublons
carte

La figure est un ensemble de noeuds, sous la forme de réseaux interconnectés. On parle aussi d'un noeud de sommet. Une paire de noeuds (x, y) est appelé le bord (edge), est relié au sommet de sommets x y. Les bords peuvent comprendre un poids / coût, montrent x du sommet au coût de y.

Le type de graphique

  • graphe non orienté
  • graphe orienté

Dans le langage de programmation, peut être représentée par la figure deux formes:

  • matrice de contiguïté
  • Liste de contiguïté

graphique commun algorithme de traversal

  • BFS
  • Profondeur première recherche

Foire aux questions sur le graphique de l'interview:

  • Réaliser l'ampleur et la première recherche approfondie
  • Vérifiez que le diagramme de l'arbre
  • Calcul du nombre d'arêtes de la Fig.
  • Trouver le plus court chemin entre deux sommets
arbre

La structure arborescente est une structure de données hiérarchique, par les sommets (noeuds) et leurs bords sont reliés composition.  arbre semblable figure, mais l'arbre et les caractéristiques importantes distinguent la boucle n'existe pas dans l'arborescence.

Structure arborescente est largement utilisé dans l'intelligence artificielle et des algorithmes complexes, qui peuvent fournir un mécanisme efficace pour résoudre le problème du stockage.

C'est un simple vue schématique d'arbre, la structure de données d'arbre et la terminologie de base utilisée:

Root - racine

Parent - parent

Enfant - un nud enfant

Feuille - nud feuille

- frères et surs frères et soeurs

Voici les principaux types de structure arborescente:

  • arbre N-aire
  • arbre équilibré
  • Binary Tree
  • arbre de recherche binaire
  • arbre AVL
  • arbre rouge-noir
  • 2-3 arbre

Parmi eux, l'arbre binaire et l'arbre de recherche binaire est le plus d'arbres communs.

Foire aux questions sur la structure de l'arbre d'entrevue:

  • A la recherche arbre très binaire
  • Trouvez la valeur maximale dans le k-ième arbre de recherche binaire
  • Trouver le nud racine distance k
  • Trouver un noeud donné dans un ancêtre du noeud d'arbre binaire
Trie (Trie)

Dictionnaire arbre, aussi connu comme « arbre préfixe », est un type particulier de structure de données d'arbre est très efficace pour résoudre les problèmes liés à la chaîne. Il permet une récupération rapide, la recherche principalement pour mot dans le dictionnaire, fournissant automatiquement des conseils dans les moteurs de recherche, même pour le routage IP.

Voici des exemples de stockage « top », « ainsi » et « leur » trois mots dans le dictionnaire de l'arbre:

Ces mots dans la portion d'extrémité de façon à stocker le haut, dans lequel les noeuds verts « p », « s » et « r » représentent respectivement un fond « en haut », « ainsi » et « leurs » a.

Foire aux questions sur l'entrevue Trie:

  • Le nombre total de mots dans un arbre dictionnaire
  • Imprimer tous les mots stockés dans l'arbre dictionnaire
  • Utilisez un arbre dictionnaire sur les éléments du tableau pour trier
  • Utilisez un formulaire de mots arbre dictionnaire du dictionnaire
  • La construction du dictionnaire T9 (arbre dictionnaire + DFS)
table de hachage (table de hachage)

Hachage (hachage) est un identificateur unique pour l'objet et chaque objet est stocké dans le nombre de pré-calculée de processus index unique (appelée « clé (Key) »). En conséquence, la clé d'objet stocké sous la forme d'une collection de ces touches est appelée un « dictionnaire ». Chaque objet peut utiliser la touche de recherche. Il existe de nombreuses structures de données basées sur le hachage, mais la structure de données la plus couramment utilisée est une table de hachage.

tables de hachage utilisent généralement des tableaux pour atteindre.

Performance structure de données de hachage dépend des trois facteurs suivants:

  • Fonction hash
  • La taille de la table de hachage
  • Procédé de traitement de collision

La figure ci-dessous montre comment la carte des instructions hachage paires valeur clé du tableau. Le tableau est indexé par un calcul de fonction de hachage.

Foire aux questions sur les structures de hachage d'entrevue:

  • Trouver des paires symétriques de valeurs de clé dans le réseau
  • Le suivi du chemin complet traversal
  • Que ce soit le tableau de recherche est un sous-ensemble d'un autre tableau
  • Vérifiez si le tableau donné est disjoint

Ceux-ci sont programmées avant l'entrevue, vous devez être conscient de la structure de huit données.

rapports connexes: https: //medium.freecodecamp.org/the-top-data-structures-you-should-know-for-your-next-coding-interview-36af0831f5e3
l'année dernière Wei, a admis dans le programme: coup de pied à l'étranger, à la maison de retour pour faire beaucoup d'argent!
Précédent
En outre passé, le chant, pas plus à manger de la poussière! « Est-il vrai? (Avec le code)
Prochain
le football chinois est une autre chose merveilleuse: adolescent Shenhua était médecin de l'équipe olympique mal diagnostiquée, a été sérieusement retardé!
robot de fabrication MIT transparent, vous pouvez attraper des poissons sous l'eau
"Air F1" 16 start Ri, principaux pilotes Han PK du monde
Highs du cycle de rotation du propriétaire transactions de logements de seconde main Chengdu lente
Une lecture de texte | AI pour trouver un emploi bien rémunérés Comment dur?
Recherchez les films de science-fiction d'amour de Saint-Valentin de 9
Zhejiang médias fustigé wei Shihao: mauvais football à nouveau sans violence aussi sauver, je suis désolé maillot national de football!
entrepreneurs Cui saisir de nouvelles de vente au détail, sa plate-forme de vente au détail Pu Tong frais Valley monopole non génétiquement alimentaire modifié
Fontaine | du sud au nord, de la saucisse à l'intestin noir, le disque est un désir d'années
l'équipe de l'Université de Tsinghua aminer publié "Super Computer Research Report" (Télécharger ci-joint)
! embarrassant Ligue européenne des nations en demi-finale aller à la guerre bientôt, mais cette fois le Portugal n'a pas réussi à gagner!
Or fête le démontage du coin, ce week-end musée Sands pour voir la bête en or 18 livres