logo

Une introduction aux structures de données

Depuis l'invention des ordinateurs, les gens utilisent le terme « » Données ' pour faire référence aux informations informatiques, transmises ou stockées. Cependant, certaines données existent également dans les types de commandes. Les données peuvent être des nombres ou des textes écrits sur un morceau de papier, sous forme de bits et d'octets stockés dans la mémoire d'appareils électroniques, ou des faits stockés dans l'esprit d'une personne. À mesure que le monde commençait à se moderniser, ces données sont devenues un aspect important de la vie quotidienne de chacun, et diverses implémentations leur ont permis de les stocker différemment.

Données est une collection de faits et de chiffres ou un ensemble de valeurs ou de valeurs d'un format spécifique qui fait référence à un seul ensemble de valeurs d'éléments. Les éléments de données sont ensuite classés en sous-éléments, qui constituent le groupe d'éléments qui ne sont pas connus comme la forme principale simple de l'élément.

Prenons un exemple dans lequel le nom d'un employé peut être décomposé en trois sous-éléments : premier, deuxième et dernier. Cependant, une pièce d'identité attribuée à un employé sera généralement considérée comme un seul élément.

Une introduction aux structures de données

Figure 1: Représentation des éléments de données

Dans l'exemple mentionné ci-dessus, les éléments tels que pièce d'identité, âge, sexe, prénom, deuxième prénom, dernier nom, rue, localité, etc., sont des éléments de données élémentaires. En revanche, le Nom et l'Adresse sont des données de groupe.

Qu’est-ce que la structure des données ?

Structure de données est une branche de l'informatique. L'étude de la structure des données nous permet de comprendre l'organisation des données et la gestion du flux de données afin d'augmenter l'efficacité de tout processus ou programme. La structure des données est une manière particulière de stocker et d'organiser les données dans la mémoire de l'ordinateur afin que ces données puissent être facilement récupérées et utilisées efficacement à l'avenir en cas de besoin. Les données peuvent être gérées de différentes manières, comme le modèle logique ou mathématique d'une organisation spécifique de données est appelé structure de données.

La portée d'un modèle de données particulier dépend de deux facteurs :

  1. Premièrement, il doit être suffisamment chargé dans la structure pour refléter la corrélation définie des données avec un objet du monde réel.
  2. Deuxièmement, la formation doit être si simple que l'on puisse s'adapter pour traiter les données efficacement chaque fois que cela est nécessaire.

Quelques exemples de structures de données sont les tableaux, les listes chaînées, la pile, la file d'attente, les arbres, etc. Les structures de données sont largement utilisées dans presque tous les aspects de l'informatique, c'est-à-dire la conception de compilateurs, les systèmes d'exploitation, les graphiques, l'intelligence artificielle et bien d'autres.

Les structures de données constituent la partie principale de nombreux algorithmes informatiques car elles permettent aux programmeurs de gérer les données de manière efficace. Il joue un rôle crucial dans l'amélioration des performances d'un programme ou d'un logiciel, car l'objectif principal du logiciel est de stocker et de récupérer les données de l'utilisateur le plus rapidement possible.

java création d'une liste

Terminologies de base liées aux structures de données

Les structures de données sont les éléments constitutifs de tout logiciel ou programme. La sélection de la structure de données appropriée pour un programme est une tâche extrêmement difficile pour un programmeur.

Voici quelques terminologies fondamentales utilisées chaque fois que les structures de données sont impliquées :

    Données:Nous pouvons définir les données comme une valeur élémentaire ou une collection de valeurs. Par exemple, le nom et l'identifiant de l'employé sont les données liées à l'employé.Éléments de données :Une unité de valeur unique est appelée élément de données.Éléments de groupe :Les éléments de données qui ont des éléments de données subordonnés sont appelés éléments de groupe. Par exemple, le nom d’un employé peut avoir un prénom, un deuxième prénom et un nom de famille.Articles élémentaires :Les éléments de données qui ne peuvent pas être divisés en sous-éléments sont appelés éléments élémentaires. Par exemple, l'ID d'un employé.Entité et attribut :Une classe de certains objets est représentée par une entité. Il se compose de différents attributs. Chaque attribut symbolise la propriété spécifique de cette entité. Par exemple,
Les attributs IDENTIFIANT Nom Genre Titre d'emploi
Valeurs 1234 Stacey M. Hill Femelle Développeur de logiciels

Les entités ayant des attributs similaires forment un Ensemble d'entités . Chaque attribut d'un ensemble d'entités possède une plage de valeurs, l'ensemble de toutes les valeurs possibles qui pourraient être attribuées à l'attribut spécifique.

Le terme « information » est parfois utilisé pour désigner des données ayant des attributs donnés de données significatives ou traitées.

    Champ:Une seule unité élémentaire d'information symbolisant l'attribut d'une entité est appelée champ.Enregistrer:Une collection de différents éléments de données est appelée enregistrement. Par exemple, si nous parlons de l’entité employé, alors son nom, son identifiant, son adresse et son titre de poste peuvent être regroupés pour former l’enregistrement de l’employé.Déposer:Une collection de différents enregistrements d’un même type d’entité est appelée fichier. Par exemple, s'il y a 100 employés, il y aura 25 enregistrements dans le fichier associé contenant des données sur chaque employé.

Comprendre le besoin de structures de données

À mesure que les applications deviennent plus complexes et que la quantité de données augmente chaque jour, cela peut entraîner des problèmes de recherche de données, de vitesse de traitement, de traitement de demandes multiples, et bien d'autres encore. Les structures de données prennent en charge différentes méthodes pour organiser, gérer et stocker efficacement les données. Avec l'aide des structures de données, nous pouvons facilement parcourir les éléments de données. Les structures de données offrent efficacité, réutilisabilité et abstraction.

Pourquoi devrions-nous apprendre les structures de données ?

  1. Les structures de données et les algorithmes sont deux des aspects clés de l'informatique.
  2. Les structures de données nous permettent d'organiser et de stocker des données, tandis que les algorithmes nous permettent de traiter ces données de manière significative.
  3. L'apprentissage des structures de données et des algorithmes nous aidera à devenir de meilleurs programmeurs.
  4. Nous pourrons écrire du code plus efficace et plus fiable.
  5. Nous serons également en mesure de résoudre les problèmes plus rapidement et plus efficacement.

Comprendre les objectifs des structures de données

Les Structures de Données répondent à deux objectifs complémentaires :

    Exactitude :Les structures de données sont conçues pour fonctionner correctement pour tous types d'entrées en fonction du domaine d'intérêt. En d’autres termes, l’exactitude constitue l’objectif principal de la structure des données, qui dépend toujours des problèmes que la structure des données est censée résoudre.Efficacité:Les structures de données doivent également être efficaces. Il doit traiter les données rapidement sans utiliser de nombreuses ressources informatiques comme l'espace mémoire. En temps réel, l’efficacité d’une structure de données est un facteur clé pour déterminer le succès ou l’échec du processus.

Comprendre certaines fonctionnalités clés des structures de données

Certaines des caractéristiques importantes des structures de données sont :

    Robustesse :Généralement, tous les programmeurs informatiques visent à produire des logiciels qui génèrent une sortie correcte pour chaque entrée possible, ainsi qu'une exécution efficace sur toutes les plates-formes matérielles. Ce type de logiciel robuste doit gérer à la fois les entrées valides et invalides.Adaptabilité:La création d'applications logicielles telles que les navigateurs Web, les traitements de texte et les moteurs de recherche Internet incluent d'énormes systèmes logiciels qui nécessitent un fonctionnement ou une exécution correct et efficace pendant de nombreuses années. De plus, les logiciels évoluent en raison des technologies émergentes ou des conditions de marché en constante évolution.Réutilisabilité :Les fonctionnalités telles que la réutilisabilité et l’adaptabilité vont de pair. On sait que le programmeur a besoin de nombreuses ressources pour créer un logiciel, ce qui en fait une entreprise coûteuse. Cependant, si le logiciel est développé de manière réutilisable et adaptable, il pourra alors être appliqué dans la plupart des applications futures. Ainsi, en exécutant des structures de données de qualité, il est possible de créer des logiciels réutilisables, ce qui semble rentable et permettant de gagner du temps.

Classification des structures de données

Une structure de données fournit un ensemble structuré de variables liées les unes aux autres de différentes manières. Il constitue la base d'un outil de programmation qui représente la relation entre les éléments de données et permet aux programmeurs de traiter les données efficacement.

Nous pouvons classer les structures de données en deux catégories :

  1. Structure de données primitive
  2. Structure de données non primitive

La figure suivante montre les différentes classifications des structures de données.

Une introduction aux structures de données

Figure 2: Classifications des structures de données

Structures de données primitives

    Structures de données primitivessont les structures de données constituées des nombres et des caractères qui viennent intégré en programmes.
  1. Ces structures de données peuvent être manipulées ou exploitées directement par des instructions au niveau machine.
  2. Types de données de base comme Entier, flottant, caractère , et Booléen relèvent des structures de données primitives.
  3. Ces types de données sont également appelés Types de données simples , car ils contiennent des caractères qui ne peuvent pas être divisés davantage

Structures de données non primitives

    Structures de données non primitivessont ces structures de données dérivées de structures de données primitives.
  1. Ces structures de données ne peuvent pas être manipulées ou exploitées directement par des instructions au niveau machine.
  2. L'objectif de ces structures de données est de former un ensemble d'éléments de données qui sont soit homogène (même type de données) ou hétérogène (différents types de données).
  3. Sur la base de la structure et de la disposition des données, nous pouvons diviser ces structures de données en deux sous-catégories :
    1. Structures de données linéaires
    2. Structures de données non linéaires

Structures de données linéaires

Une structure de données qui préserve une connexion linéaire entre ses éléments de données est appelée structure de données linéaire. L'agencement des données se fait de manière linéaire, chaque élément étant constitué des successeurs et des prédécesseurs à l'exception du premier et du dernier élément de données. Cependant, cela n'est pas nécessairement vrai dans le cas de la mémoire, car l'agencement peut ne pas être séquentiel.

Sur la base de l'allocation de mémoire, les structures de données linéaires sont en outre classées en deux types :

    Structures de données statiques :Les structures de données ayant une taille fixe sont appelées structures de données statiques. La mémoire de ces structures de données est allouée au moment du compilateur et leur taille ne peut pas être modifiée par l'utilisateur après avoir été compilée ; cependant, les données qui y sont stockées peuvent être modifiées.
    Le Tableau est le meilleur exemple de structure de données statique car elles ont une taille fixe et ses données peuvent être modifiées ultérieurement.Structures de données dynamiques :Les structures de données ayant une taille dynamique sont appelées structures de données dynamiques. La mémoire de ces structures de données est allouée au moment de l'exécution et leur taille varie au cours de l'exécution du code. De plus, l'utilisateur peut modifier la taille ainsi que les éléments de données stockés dans ces structures de données au moment de l'exécution du code.
    Listes liées, piles , et Queues sont des exemples courants de structures de données dynamiques

Types de structures de données linéaires

Voici la liste des structures de données linéaires que nous utilisons généralement :

1. Tableaux

Un Tableau est une structure de données utilisée pour collecter plusieurs éléments de données du même type de données dans une seule variable. Au lieu de stocker plusieurs valeurs des mêmes types de données dans des noms de variables distincts, nous pourrions toutes les stocker ensemble dans une seule variable. Cette déclaration n'implique pas que nous devrons réunir toutes les valeurs du même type de données dans n'importe quel programme en un seul tableau de ce type de données. Mais il y aura souvent des moments où certaines variables spécifiques des mêmes types de données seront toutes liées les unes aux autres d'une manière appropriée pour un tableau.

Un tableau est une liste d'éléments où chaque élément a une place unique dans la liste. Les éléments de données du tableau partagent le même nom de variable ; cependant, chacun porte un numéro d’index différent appelé indice. Nous pouvons accéder à n'importe quel élément de données de la liste à l'aide de son emplacement dans la liste. Ainsi, la principale caractéristique des tableaux à comprendre est que les données sont stockées dans des emplacements de mémoire contigus, permettant aux utilisateurs de parcourir les éléments de données du tableau en utilisant leurs index respectifs.

Une introduction aux structures de données

Figure 3. Un tableau

c booléen

Les tableaux peuvent être classés en différents types :

    Tableau unidimensionnel :Un tableau avec une seule ligne d’éléments de données est appelé tableau unidimensionnel. Il est stocké dans un emplacement de stockage ascendant.Tableau bidimensionnel :Un tableau composé de plusieurs lignes et colonnes d'éléments de données est appelé tableau bidimensionnel. Elle est également connue sous le nom de Matrice.Tableau multidimensionnel :Nous pouvons définir un tableau multidimensionnel comme un tableau de tableaux. Les tableaux multidimensionnels ne sont pas limités à deux indices ou à deux dimensions car ils peuvent inclure autant d'indices que nécessaire.

Quelques applications du tableau :

  1. Nous pouvons stocker une liste d'éléments de données appartenant au même type de données.
  2. Array agit comme un stockage auxiliaire pour d’autres structures de données.
  3. Le tableau permet également de stocker les éléments de données d'un arbre binaire du nombre fixe.
  4. Array agit également comme un stockage de matrices.

2. Listes liées

UN Liste liée est un autre exemple de structure de données linéaire utilisée pour stocker dynamiquement une collection d’éléments de données. Les éléments de données de cette structure de données sont représentés par les nœuds, connectés à l'aide de liens ou de pointeurs. Chaque nœud contient deux champs, le champ d'information est constitué des données réelles et le champ de pointeur est constitué de l'adresse des nœuds suivants dans la liste. Le pointeur du dernier nœud de la liste chaînée est constitué d’un pointeur nul, car il ne pointe vers rien. Contrairement aux tableaux, l'utilisateur peut ajuster dynamiquement la taille d'une liste liée selon les exigences.

Une introduction aux structures de données

Graphique 4. Une liste chaînée

Les listes liées peuvent être classées en différents types :

    Liste à lien unique :Une liste chaînée unique est le type de liste chaînée le plus courant. Chaque nœud possède des données et un champ de pointeur contenant une adresse vers le nœud suivant.Liste doublement chaînée :Une liste doublement chaînée se compose d’un champ d’information et de deux champs de pointeur. Le champ d'information contient les données. Le premier champ de pointeur contient une adresse du nœud précédent, tandis qu'un autre champ de pointeur contient une référence au nœud suivant. Ainsi, nous pouvons aller dans les deux sens (en arrière comme en avant).Liste circulaire chaînée :La liste chaînée circulaire est similaire à la liste chaînée unique. La seule différence clé est que le dernier nœud contient l'adresse du premier nœud, formant une boucle circulaire dans la liste chaînée circulaire.

Quelques applications des listes chaînées :

  1. Les listes chaînées nous aident à implémenter des piles, des files d'attente, des arbres binaires et des graphiques de taille prédéfinie.
  2. Nous pouvons également implémenter la fonction du système d'exploitation pour la gestion dynamique de la mémoire.
  3. Les listes liées permettent également une implémentation polynomiale pour les opérations mathématiques.
  4. Nous pouvons utiliser la liste chaînée circulaire pour implémenter des systèmes d'exploitation ou des fonctions d'application qui exécutent des tâches à tour de rôle.
  5. La liste chaînée circulaire est également utile dans un diaporama où un utilisateur doit revenir à la première diapositive après la présentation de la dernière diapositive.
  6. La liste doublement liée est utilisée pour implémenter des boutons avant et arrière dans un navigateur pour avancer et reculer dans les pages ouvertes d'un site Web.

3. Piles

UN Empiler est une structure de données linéaire qui suit le LIFO (Last In, First Out) qui permet des opérations telles que l'insertion et la suppression à partir d'une extrémité de la pile, c'est-à-dire Top. Les piles peuvent être implémentées à l'aide d'une mémoire contiguë, un tableau, et d'une mémoire non contiguë, une liste chaînée. Des exemples concrets de Stacks sont des piles de livres, un jeu de cartes, des piles d'argent et bien d'autres.

Une introduction aux structures de données

Graphique 5. Un exemple concret de pile

La figure ci-dessus représente l'exemple réel d'une pile où les opérations sont effectuées à partir d'une seule extrémité, comme l'insertion et le retrait de nouveaux livres du haut de la pile. Cela implique que l'insertion et la suppression dans la pile ne peuvent être effectuées qu'à partir du haut de la pile. Nous ne pouvons accéder qu'aux sommets de la Stack à tout moment.

Les principales opérations dans la pile sont les suivantes :

    Pousser:L'opération visant à insérer un nouvel élément dans la pile est appelée opération Push.Populaire:L'opération visant à supprimer ou à supprimer des éléments de la pile est appelée opération Pop.
Une introduction aux structures de données

Graphique 6. Une pile

âge de Vicky Kaushal

Quelques applications des piles :

  1. La pile est utilisée comme structure de stockage temporaire pour les opérations récursives.
  2. Stack est également utilisé comme structure de stockage auxiliaire pour les appels de fonctions, les opérations imbriquées et les fonctions différées/reportées.
  3. Nous pouvons gérer les appels de fonction à l'aide de Stacks.
  4. Les piles sont également utilisées pour évaluer les expressions arithmétiques dans différents langages de programmation.
  5. Les piles sont également utiles pour convertir des expressions infixes en expressions postfixes.
  6. Les piles nous permettent de vérifier la syntaxe de l'expression dans l'environnement de programmation.
  7. Nous pouvons faire correspondre les parenthèses en utilisant Stacks.
  8. Les piles peuvent être utilisées pour inverser une chaîne.
  9. Les piles sont utiles pour résoudre des problèmes basés sur le retour en arrière.
  10. Nous pouvons utiliser Stacks dans une recherche approfondie d'abord dans le parcours de graphiques et d'arbres.
  11. Les piles sont également utilisées dans les fonctions du système d'exploitation.
  12. Les piles sont également utilisées dans les fonctions UNDO et REDO lors d'une édition.

4. Queues

UN File d'attente est une structure de données linéaire similaire à une pile avec quelques limitations sur l'insertion et la suppression des éléments. L'insertion d'un élément dans une file d'attente se fait à une extrémité, et la suppression se fait à une autre extrémité ou à l'autre extrémité. Ainsi, nous pouvons conclure que la structure de données de la file d'attente suit le principe FIFO (First In, First Out) pour manipuler les éléments de données. L'implémentation des files d'attente peut être effectuée à l'aide de tableaux, de listes liées ou de piles. Quelques exemples concrets de files d'attente sont une file d'attente au guichet, un escalier roulant, un lave-auto et bien d'autres encore.

Une introduction aux structures de données

Graphique 7. Un exemple concret de file d'attente

L'image ci-dessus est une illustration réelle d'un guichet de cinéma qui peut nous aider à comprendre la file d'attente où le client qui arrive en premier est toujours servi en premier. Le client arrivé en dernier sera sans aucun doute servi en dernier. Les deux extrémités de la file d'attente sont ouvertes et peuvent exécuter différentes opérations. Un autre exemple est une ligne d'aire de restauration où le client est inséré par l'arrière tandis que le client est retiré à l'avant après avoir fourni le service qu'il a demandé.

Voici les principales opérations de la file d'attente :

    Mettre en file d'attente :L'insertion ou l'ajout de certains éléments de données à la file d'attente est appelé mise en file d'attente. L'insertion d'un élément se fait toujours à l'aide du pointeur arrière.Dequeue:La suppression ou la suppression d'éléments de données de la file d'attente est appelée Dequeue. La suppression de l'élément se fait toujours à l'aide du pointeur frontal.
Une introduction aux structures de données

Figure 8. File d'attente

Quelques applications des files d'attente :

  1. Les files d'attente sont généralement utilisées dans l'opération de recherche étendue dans les graphiques.
  2. Les files d'attente sont également utilisées dans les opérations du planificateur de tâches des systèmes d'exploitation, comme une file d'attente de tampon de clavier pour stocker les touches enfoncées par les utilisateurs et une file d'attente de tampon d'impression pour stocker les documents imprimés par l'imprimante.
  3. Les files d'attente sont responsables de la planification du processeur, de la planification des tâches et de la planification des disques.
  4. Les files d'attente prioritaires sont utilisées dans les opérations de téléchargement de fichiers dans un navigateur.
  5. Les files d'attente sont également utilisées pour transférer des données entre les périphériques et le processeur.
  6. Les files d'attente sont également responsables de la gestion des interruptions générées par les applications utilisateur pour le processeur.

Structures de données non linéaires

Les structures de données non linéaires sont des structures de données dans lesquelles les éléments de données ne sont pas disposés dans un ordre séquentiel. Ici, l'insertion et la suppression de données ne sont pas réalisables de manière linéaire. Il existe une relation hiérarchique entre les éléments de données individuels.

Types de structures de données non linéaires

Voici la liste des structures de données non linéaires que nous utilisons généralement :

1. Arbres

Un arbre est une structure de données non linéaire et une hiérarchie contenant une collection de nœuds tels que chaque nœud de l'arborescence stocke une valeur et une liste de références à d'autres nœuds (les « enfants »).

La structure de données arborescente est une méthode spécialisée pour organiser et collecter des données dans l'ordinateur afin de les utiliser plus efficacement. Il contient un nœud central, des nœuds structurels et des sous-nœuds connectés via des bords. On peut également dire que la structure de données arborescente est constituée de racines, de branches et de feuilles connectées.

Une introduction aux structures de données

Graphique 9. Un arbre

Les arbres peuvent être classés en différents types :

    Arbre binaire :Une structure de données arborescente dans laquelle chaque nœud parent peut avoir au plus deux enfants est appelée arbre binaire.Arbre de recherche binaire :Un arbre de recherche binaire est une structure de données arborescente dans laquelle nous pouvons facilement maintenir une liste triée de nombres.Arbre AVL :Un arbre AVL est un arbre de recherche binaire auto-équilibré dans lequel chaque nœud conserve des informations supplémentaires appelées facteur d'équilibre dont la valeur est -1, 0 ou +1.Arbre B :Un B-Tree est un type spécial d’arbre de recherche binaire auto-équilibré où chaque nœud se compose de plusieurs clés et peut avoir plus de deux enfants.

Quelques applications des arbres :

caractéristiques d'une série panda
  1. Les arbres implémentent des structures hiérarchiques dans les systèmes informatiques tels que les répertoires et les systèmes de fichiers.
  2. Les arbres sont également utilisés pour mettre en œuvre la structure de navigation d’un site Web.
  3. Nous pouvons générer du code comme celui de Huffman en utilisant des arbres.
  4. Les arbres sont également utiles à la prise de décision dans les applications de jeux.
  5. Les arborescences sont responsables de la mise en œuvre des files d'attente prioritaires pour les fonctions de planification du système d'exploitation basées sur les priorités.
  6. Les arbres sont également responsables de l'analyse des expressions et des instructions dans les compilateurs de différents langages de programmation.
  7. Nous pouvons utiliser des arbres pour stocker des clés de données à indexer pour le système de gestion de base de données (SGBD).
  8. Les Spanning Trees nous permettent d'acheminer les décisions dans les réseaux informatiques et de communication.
  9. Les arbres sont également utilisés dans l'algorithme de recherche de chemin implémenté dans les applications d'intelligence artificielle (IA), de robotique et de jeux vidéo.

2. Graphiques

Un graphique est un autre exemple de structure de données non linéaire comprenant un nombre fini de nœuds ou de sommets et les arêtes qui les relient. Les graphiques sont utilisés pour résoudre les problèmes du monde réel dans lesquels ils désignent la zone problématique en tant que réseau tel que les réseaux sociaux, les réseaux de circuits et les réseaux téléphoniques. Par exemple, les nœuds ou sommets d'un graphique peuvent représenter un seul utilisateur dans un réseau téléphonique, tandis que les bords représentent le lien entre eux via le téléphone.

La structure de données Graph, G est considérée comme une structure mathématique composée d'un ensemble de sommets, V et d'un ensemble d'arêtes, E, comme indiqué ci-dessous :

G = (V,E)

Une introduction aux structures de données

Graphique 10. Un graphique

La figure ci-dessus représente un graphique ayant sept sommets A, B, C, D, E, F, G et dix arêtes [A, B], [A, C], [B, C], [B, D], [B, E], [C, D], [D, E], [D, F], [E, F] et [E, G].

En fonction de la position des sommets et des arêtes, les graphiques peuvent être classés en différents types :

    Graphique nul :Un graphique avec un ensemble vide d’arêtes est appelé un graphique nul.Graphique trivial :Un graphe n’ayant qu’un seul sommet est appelé graphe trivial.Graphique simple :Un graphique sans boucles automatiques ni arêtes multiples est appelé graphique simple.Graphique multiple :Un graphe est dit Multi s’il est constitué de plusieurs arêtes mais pas d’auto-boucles.Pseudo-graphique :Un graphique avec des boucles automatiques et plusieurs arêtes est appelé pseudo-graphe.Graphique non orienté :Un graphique constitué d’arêtes non orientées est appelé graphique non orienté.Graphique dirigé:Un graphique constitué des arêtes dirigées entre les sommets est appelé graphique orienté.Graphique connecté :Un graphe avec au moins un seul chemin entre chaque paire de sommets est appelé graphe connecté.Graphique déconnecté :Un graphique dans lequel il n’existe aucun chemin entre au moins une paire de sommets est appelé un graphique déconnecté.Graphique régulier :Un graphique dont tous les sommets ont le même degré est appelé un graphique régulier.Graphique complet :Un graphique dans lequel tous les sommets ont une arête entre chaque paire de sommets est appelé graphique complet.Graphique cyclique :Un graphe est dit cycle s’il comporte au moins trois sommets et arêtes qui forment un cycle.Graphique cyclique :Un graphe est dit cyclique si et seulement si au moins un cycle existe.Graphique acyclique :Un graphique ayant zéro cycle est appelé graphique acyclique.Graphe fini :Un graphe avec un nombre fini de sommets et d’arêtes est appelé graphe fini.Graphique infini :Un graphe avec un nombre infini de sommets et d’arêtes est appelé graphe infini.Graphique biparti :Un graphe où les sommets peuvent être divisés en ensembles indépendants A et B, et tous les sommets de l'ensemble A ne doivent être connectés qu'aux sommets présents dans l'ensemble B avec quelques arêtes est appelé graphe bipartite.Graphique planaire :Un graphe est dit planaire si l’on peut le dessiner dans un seul plan avec deux arêtes se coupant.Graphique d'Euler :Un graphe est dit d’Euler si et seulement si tous ses sommets sont de degrés pairs.Graphique hamiltonien :Un graphe connecté constitué d’un circuit hamiltonien est appelé graphe hamiltonien.

Quelques applications des graphiques :

remplacer une chaîne en Java
  1. Les graphiques nous aident à représenter les itinéraires et les réseaux dans les applications de transport, de voyage et de communication.
  2. Les graphiques sont utilisés pour afficher les itinéraires dans le GPS.
  3. Les graphiques nous aident également à représenter les interconnexions dans les réseaux sociaux et autres applications basées sur les réseaux.
  4. Les graphiques sont utilisés dans les applications de cartographie.
  5. Les graphiques sont responsables de la représentation des préférences des utilisateurs dans les applications de commerce électronique.
  6. Les graphiques sont également utilisés dans les réseaux de services publics afin d'identifier les problèmes posés aux entreprises locales ou municipales.
  7. Les graphiques aident également à gérer l'utilisation et la disponibilité des ressources dans une organisation.
  8. Des graphiques sont également utilisés pour créer des cartes de liens vers des documents des sites Web afin d'afficher la connectivité entre les pages via des hyperliens.
  9. Les graphiques sont également utilisés dans les mouvements robotiques et les réseaux neuronaux.

Opérations de base des structures de données

Dans la section suivante, nous aborderons les différents types d'opérations que nous pouvons effectuer pour manipuler des données dans chaque structure de données :

    Traversée :Parcourir une structure de données signifie accéder à chaque élément de données exactement une fois afin qu'il puisse être administré. Par exemple, un parcours est requis lors de l'impression des noms de tous les employés d'un service.Recherche:La recherche est une autre opération de structure de données qui consiste à trouver l'emplacement d'un ou plusieurs éléments de données qui répondent à certaines contraintes. Un tel élément de données peut être présent ou non dans l'ensemble d'éléments de données donné. Par exemple, nous pouvons utiliser l'opération de recherche pour trouver les noms de tous les employés qui ont une expérience de plus de 5 ans.Insertion:L'insertion signifie l'insertion ou l'ajout de nouveaux éléments de données à la collection. Par exemple, nous pouvons utiliser l'opération d'insertion pour ajouter les détails d'un nouvel employé que l'entreprise a récemment embauché.Effacement:La suppression signifie supprimer ou supprimer un élément de données spécifique de la liste d'éléments de données donnée. Par exemple, nous pouvons utiliser l'opération de suppression pour supprimer le nom d'un employé qui a quitté son emploi.Tri:Le tri signifie organiser les éléments de données par ordre croissant ou décroissant en fonction du type d'application. Par exemple, nous pouvons utiliser l'opération de tri pour classer les noms des employés d'un service par ordre alphabétique ou estimer les trois plus performants du mois en classant les performances des employés par ordre décroissant et en extrayant les détails des trois premiers.Fusionner:Fusionner signifie combiner des éléments de données de deux listes triées afin de former une seule liste d'éléments de données triés.Créer:Créer est une opération utilisée pour réserver de la mémoire pour les éléments de données du programme. Nous pouvons effectuer cette opération à l'aide d'une instruction de déclaration. La création de la structure des données peut avoir lieu soit lors des étapes suivantes :
    1. Au moment de la compilation
    2. Durée
      Par exemple, le malloc() La fonction est utilisée en langage C pour créer une structure de données.
    Sélection:La sélection signifie sélectionner une donnée particulière parmi les données disponibles. Nous pouvons sélectionner n'importe quelle donnée particulière en spécifiant des conditions à l'intérieur de la boucle.Mise à jour:L'opération Update nous permet de mettre à jour ou de modifier les données dans la structure de données. Nous pouvons également mettre à jour des données particulières en spécifiant certaines conditions à l'intérieur de la boucle, comme l'opération de sélection.Scission:L'opération de fractionnement nous permet de diviser les données en différentes sous-parties, réduisant ainsi le temps global d'achèvement du processus.

Comprendre le type de données abstrait

Selon le Institut national des normes et de la technologie (NIST) , une structure de données est un arrangement d'informations, généralement dans la mémoire, pour une meilleure efficacité de l'algorithme. Les structures de données incluent des listes chaînées, des piles, des files d'attente, des arborescences et des dictionnaires. Il peut également s'agir d'une entité théorique, comme le nom et l'adresse d'une personne.

De la définition mentionnée ci-dessus, nous pouvons conclure que les opérations dans la structure des données comprennent :

  1. Un niveau élevé d'abstractions comme l'ajout ou la suppression d'un élément d'une liste.
  2. Rechercher et trier un élément dans une liste.
  3. Accéder à l'élément le plus prioritaire dans une liste.

Chaque fois que la structure de données effectue de telles opérations, on parle de Type de données abstrait (ADT) .

Nous pouvons le définir comme un ensemble d'éléments de données ainsi que les opérations sur les données. Le terme « abstrait » fait référence au fait que les données et les opérations fondamentales qui y sont définies sont étudiées indépendamment de leur mise en œuvre. Cela inclut ce que nous pouvons faire avec les données, et non la manière dont nous pouvons le faire.

Une implémentation ADI contient une structure de stockage afin de stocker les éléments de données et les algorithmes pour le fonctionnement fondamental. Toutes les structures de données, comme un tableau, une liste chaînée, une file d'attente, une pile, etc., sont des exemples d'ADT.

Comprendre les avantages de l'utilisation des ADT

Dans le monde réel, les programmes évoluent en conséquence de nouvelles contraintes ou exigences, donc la modification d'un programme nécessite généralement un changement dans une ou plusieurs structures de données. Par exemple, supposons que nous souhaitions insérer un nouveau champ dans le dossier d'un employé pour conserver plus de détails sur chaque employé. Dans ce cas, nous pouvons améliorer l'efficacité du programme en remplaçant un Array par une structure Linked. Dans une telle situation, réécrire chaque procédure utilisant la structure modifiée n’est pas approprié. Par conséquent, une meilleure alternative consiste à séparer une structure de données de ses informations de mise en œuvre. C'est le principe derrière l'utilisation des types de données abstraits (ADT).

Quelques applications des structures de données

Voici quelques applications des structures de données :

  1. Les structures de données aident à l'organisation des données dans la mémoire d'un ordinateur.
  2. Les structures de données aident également à représenter les informations dans les bases de données.
  3. Les structures de données permettent la mise en œuvre d'algorithmes pour rechercher dans les données (par exemple, moteur de recherche).
  4. Nous pouvons utiliser les structures de données pour implémenter les algorithmes permettant de manipuler les données (par exemple, des traitements de texte).
  5. Nous pouvons également mettre en œuvre des algorithmes pour analyser les données à l'aide de structures de données (par exemple, des mineurs de données).
  6. Les structures de données prennent en charge des algorithmes pour générer les données (par exemple, un générateur de nombres aléatoires).
  7. Les structures de données prennent également en charge des algorithmes pour compresser et décompresser les données (par exemple, un utilitaire zip).
  8. Nous pouvons également utiliser des structures de données pour mettre en œuvre des algorithmes permettant de crypter et déchiffrer les données (par exemple, un système de sécurité).
  9. Avec l'aide des structures de données, nous pouvons créer un logiciel capable de gérer des fichiers et des répertoires (par exemple, un gestionnaire de fichiers).
  10. Nous pouvons également développer des logiciels capables de restituer des graphiques à l’aide de structures de données. (Par exemple, un navigateur Web ou un logiciel de rendu 3D).

En dehors de celles-ci, comme mentionné précédemment, il existe de nombreuses autres applications de structures de données qui peuvent nous aider à créer n'importe quel logiciel souhaité.