Qu'est-ce que la structure de données linéaire ? Liste des structures de données expliquées
Publié: 2021-06-18Les structures de données sont les données structurées de manière à être utilisées efficacement par les utilisateurs. Comme le programme informatique dépend énormément des données et nécessite également un grand volume de données pour ses performances, il est donc très important d'organiser les données. Cette disposition des données dans des structures organisées est connue sous le nom de structure de données.
Le stockage des données dans des structures de données permet l'accès, les modifications et d'autres opérations pouvant être effectuées sur les éléments de données. L'agencement des données est principalement effectué dans un ordinateur et, par conséquent, des algorithmes appropriés sont nécessaires pour effectuer des opérations avec les structures de données. Réduire l'espace et diminuer la complexité temporelle des différentes tâches est l'objectif principal des structures de données.
Les points les plus importants dans une structure de données sont :
- Une grande quantité de données est organisée à travers chaque type de structure de données.
- Un principe particulier est suivi par chaque structure de données.
- Le principe de base de la structure de données doit être suivi même si des opérations sont effectuées sur la structure de données.
L'agencement des données au sein d'une structure de données peut suivre différents ordres. Une structure de données est donc classée selon le mode d'arrangement des données. Fondamentalement, il existe deux types de structure de données .
- Structure de données primitive
- Structure de données non primitive
Le type primitif de structure de données comprend les structures de données prédéfinies telles que char, float, int et double.
Les structures de données non primitives sont utilisées pour stocker la collection d'éléments. Cette structure de données peut être subdivisée en
- Structure de données linéaire
- Structure de données non linéaire.
Lire : Apprenez les différences entre la structure de données linéaire et non linéaire
Dans cet article, nous discuterons principalement de la structure de données stockant les données de manière linéaire.
Table des matières
Structure de données linéaire
C'est un type de structure de données où la disposition des données suit une tendance linéaire. Les éléments de données sont agencés linéairement de sorte que l'élément soit directement lié à ses éléments précédents et suivants. Comme les éléments sont stockés de manière linéaire, la structure prend en charge le stockage de données à un seul niveau. Et par conséquent, la traversée des données est réalisée en une seule exécution.
Les caractéristiques
- C'est un type de structure de données où les données sont stockées et gérées dans une séquence linéaire.
- Les éléments de données de la séquence sont liés les uns après les autres.
- La mise en œuvre de la structure linéaire des données dans la mémoire d'un ordinateur est facile car les données sont organisées de manière séquentielle.
- Tableau, file d'attente. Pile, liste chaînée, etc. sont des exemples de ce type de structure.
- Les éléments de données stockés dans la structure de données n'ont qu'une seule relation.
- La traversée des éléments de données peut être effectuée en une seule exécution car les éléments de données sont stockés dans un seul niveau.
- Il y a une mauvaise utilisation de la mémoire de l'ordinateur si une structure stockant les données linéairement est mise en œuvre.
- Avec l'augmentation de la taille de la structure de données, la complexité temporelle de la structure augmente.
Ces structures peuvent donc se résumer à un type de structure de données où les éléments sont stockés séquentiellement et suivent l'ordre où :
- Un seul premier élément est présent qui a un élément suivant .
- Un seul dernier élément est présent qui a un élément précédent .
- Tous les autres éléments de la structure de données ont un élément précédent et un élément suivant
Liste de structure de données dans une structure de données de type linéaire
1. Tableau
Le tableau est ce type de structure qui stocke des éléments homogènes à des emplacements de mémoire contigus. Les mêmes types d'objets sont stockés séquentiellement dans un tableau. L'idée principale d'un tableau est que plusieurs données du même type peuvent être stockées ensemble. Avant de stocker les données dans un tableau, la taille du tableau doit être définie. Tout élément du tableau peut être consulté ou modifié et les éléments stockés sont indexés pour identifier leurs emplacements.
Un tableau peut être expliqué à l'aide d'un exemple simple de stockage des notes de tous les élèves d'une classe. Supposons qu'il y ait 20 étudiants, alors la taille du tableau doit être mentionnée comme 20. Les notes de tous les étudiants peuvent alors être stockées dans le tableau créé sans qu'il soit nécessaire de créer des variables distinctes pour les notes de chaque étudiant. Un simple parcours du tableau peut conduire à l'accès des éléments.
2. Liste liée
La liste chaînée est ce type de structure de données où des objets séparés sont stockés séquentiellement. Chaque objet stocké dans la structure de données aura les données et une référence à l'objet suivant. Le dernier nœud de la liste chaînée a une référence à null. Le premier élément de la liste chaînée est appelé tête de liste. Il existe de nombreuses différences entre une liste chaînée et les autres types de structures de données. Celles-ci concernent l'allocation de mémoire, la structure interne de la structure de données et les opérations effectuées sur la liste chaînée.
Accéder à un élément dans une liste chaînée est un processus plus lent par rapport aux tableaux car l'indexation dans un tableau aide à localiser l'élément. Cependant, dans le cas d'une liste chaînée, le processus doit partir de la tête et parcourir toute la structure jusqu'à ce que l'élément souhaité soit atteint. En revanche, l'avantage d'utiliser des listes chaînées est que l'ajout ou la suppression d'éléments au début peut se faire très rapidement.
Il existe trois types de listes liées :
- Liste chaînée unique : ce type de structure contient l'adresse ou la référence du nœud suivant stocké dans le nœud courant. Par conséquent, un nœud qui a en dernier lieu l'adresse et la référence comme NULL. Exemple : A->B->C->D->E->NULL.
- Une liste doublement chaînée : Comme son nom l'indique, chaque nœud est associé à deux références. Une référence dirige vers le nœud précédent tandis que la deuxième référence pointe vers le nœud suivant. La traversée est possible dans les deux sens car une référence est disponible pour les nœuds précédents. En outre, un accès explicite n'est pas requis pour la suppression. Exemple : NULL<-A<->B<->C<->D<->E->NULL.
- Liste chaînée circulaire : les nœuds d'une liste chaînée circulaire sont connectés de manière à former un cercle. Comme la liste chaînée est circulaire, il n'y a pas de fin et donc pas de NULL. Ce type de liste chaînée peut suivre la structure de manière simple ou double. Il n'y a pas de nœud de départ spécifique et n'importe quel nœud des données peut être le nœud de départ. La référence du dernier nœud pointe vers le premier nœud. Exemple : A->B->C->D->E.
Les propriétés d'une liste chaînée sont :
- Temps d'accès : O(n)
- Temps de recherche : O(n)
- Ajout d'élément : O(1)
- Supprimer un élément : O(1)
3. Pile
La pile est un autre type de structure où les éléments stockés dans la structure de données suivent la règle LIFO (dernier entré, premier sorti) ou FILO (premier entré, dernier sorti). Deux types d'opérations sont associées à une pile, c'est-à-dire push et pop. Push est utilisé lorsqu'un élément doit être ajouté à la collection et pop est utilisé lorsque le dernier élément doit être supprimé de la collection. L'extraction ne peut être effectuée que pour le dernier élément ajouté.
Les propriétés d'une pile sont :
- Ajout d'élément : O(1)
- élément de suppression : O(1)
- Temps d'accès : O(n) [Pire cas]
- Une seule extrémité permet d'insérer et de supprimer un élément.
Des exemples de la pile incluent la suppression de la récursivité. Dans les scénarios où un mot doit être inversé, ou lors de l'utilisation d'éditeurs lorsque le mot qui a été tapé en dernier sera supprimé en premier (à l'aide d'une opération d'annulation), des piles sont utilisées. Si vous voulez essayer des projets de structure de données intéressants, cliquez pour lire cet article.
4. File d'attente
La file d'attente est le type de structure de données où les éléments à stocker suivent la règle du premier entré, premier sorti (FIFO). L'ordre particulier est suivi pour effectuer les opérations requises sur les éléments. La différence entre une file d'attente et celle d'une pile réside dans la suppression d'un élément, où l'objet le plus récemment ajouté est supprimé en premier dans une pile. Alors que, dans le cas d'une file d'attente, l'élément qui a été ajouté en premier est supprimé en premier.
La fin de la structure de données est utilisée pour l'insertion et la suppression de données. Les deux principales opérations régissant la structure de la file d'attente sont la mise en file d'attente et la sortie de la file d'attente. Enqueue fait référence au processus où l'insertion d'un élément est autorisée pour la collecte de données et dequeue fait référence au processus où la suppression d'éléments est autorisée, qui est le premier élément de la file d'attente dans ce cas.
Les propriétés d'une file d'attente sont :
- Insertion d'un élément : O(1)
- Supprimer un élément : O(1)
- Temps d'accès : O(n)
Exemple de file d'attente : Semblable à ces files d'attente créées en attendant le bus ou n'importe où, la structure des données suit également le même modèle. Nous pouvons imaginer une personne attendant le bus et se tenant à la première position comme la personne qui est arrivée la première dans la file d'attente. Cette personne sera la première à monter dans un bus, c'est-à-dire à sortir de la file d'attente. Les files d'attente sont appliquées lorsque plusieurs utilisateurs partagent les mêmes ressources et elles doivent être servies en fonction de qui est arrivé en premier sur le serveur.
Conclusion
Une augmentation de la taille des données a nécessité l'utilisation efficace des structures de données dans les programmes informatiques. Si les données ne sont pas organisées de manière structurée, l'exécution des tâches sur les éléments devient difficile.
Pour une opération sans tracas, il est toujours important de l'organiser de manière à ce que des opérations simples et efficaces puissent être effectuées par des programmes informatiques. Si les éléments de données sont organisés dans un ordre séquentiel, on parle alors de structure de données linéaire, tandis que si les éléments de données sont disposés de manière non linéaire, on parle de structure non linéaire.
Une large application de la structure de données a été observée dans les langages d'apprentissage automatique, les problèmes de la vie réelle, etc. Les personnes qui rêvent de travailler dans ce domaine devraient être capables de maîtriser ces concepts.
Si vous souhaitez en savoir plus, consultez le programme upGrad Executive PG en science des données qui fournit une plate-forme pour vous transformer en scientifiques de données performants. Conçu pour tous les professionnels de niveau intermédiaire, le cours de science des données vous exposera à toutes les connaissances théoriques et pratiques nécessaires à votre réussite. Alors pourquoi attendre d'autres options, quand le succès n'est qu'à un clic. Si une assistance est nécessaire, nous serons heureux de vous aider.
Ce qui suit illustre les différences significatives entre les structures de données linéaires et non linéaires : Les points suivants expliquent comment les listes chaînées sont beaucoup plus efficaces que les tableaux : Les opérations courantes possibles pouvant être effectuées dans toutes les structures de données linéaires comprennent le parcours, l'insertion, la suppression, la modification, l'opération de recherche et l'opération de tri.Quelle est la différence entre les structures de données linéaires et non linéaires ?
Structure de données linéaire -
1. Dans les structures de données linéaires, chaque élément est connecté linéairement les uns aux autres en faisant référence aux éléments suivants et précédents.
2. La mise en œuvre est assez simple car un seul niveau est impliqué.
3. Le gaspillage de mémoire est beaucoup plus courant dans les structures de données linéaires.
4. Les piles, les files d'attente, les tableaux et les listes liées sont tous des exemples de structures de données linéaires.
Structure de données non linéaire -
1. Dans les structures de données non linéaires, les éléments sont connectés de manière hiérarchique.
2. La mise en œuvre est beaucoup plus complexe car plusieurs niveaux sont impliqués.
3. La mémoire est consommée à bon escient et il n'y a presque pas de gaspillage de mémoire.
4. Les graphiques et les arbres sont des exemples de structures de données non linéaires. En quoi les listes chaînées sont-elles plus efficaces que les tableaux ?
une. Allocation de mémoire dynamique
La mémoire d'une liste chaînée est localisée dynamiquement, ce qui signifie qu'il n'est pas nécessaire d'initialiser la taille et qu'elle peut être étendue ou réduite à tout moment sans impliquer aucune opération extérieure.
D'autre part, les tableaux sont alloués statiquement et la taille doit être initialisée. Une fois créée, la taille ne peut pas être modifiée.
b. Insertion et suppression
Puisqu'une liste liée est créée dynamiquement, les opérations telles que l'insertion et la suppression sont beaucoup plus pratiques.
c . Pas de perte de mémoire
Il n'y a pas de gaspillage de mémoire dans une liste chaînée car tous les éléments sont insérés dynamiquement. Et après la suppression d'un élément, on peut libérer sa mémoire. Quelles sont les opérations les plus courantes effectuées dans les structures de données linéaires ?
Ces opérations sont reconnues par des noms différents dans des structures de données différentes. Par exemple, les opérations d'insertion et de suppression sont appelées opérations Push et Pop dans Stack, alors qu'elles sont appelées opérations de mise en file d'attente et de retrait de la file d'attente dans Queue.
Il peut également y avoir d'autres opérations telles que la fusion et l'opération vide pour vérifier si la structure de données est vide ou non.