Maison base de données tutoriel mysql 05.线性表(四)链式存储结构.静态链表

05.线性表(四)链式存储结构.静态链表

Jun 07, 2016 pm 04:12 PM
存储 线性 结构 链表 statique

链式存储结构.静态链表 一、静态链表 1.静态链表存储结构 单链表是通过指针实现的,但是我们也可以通过数组来代替指针描述单链表,即静态链表。如何实现静态链表?构造数组的元素由两个数据域组成:data和cur,即数组的每个下标都对应一个data和一个cur。数据

链式存储结构.静态链表 一、静态链表 1.静态链表存储结构 单链表是通过指针实现的,但是我们也可以通过数组来代替指针描述单链表,即静态链表。如何实现静态链表?构造数组的元素由两个数据域组成:data和cur,即数组的每个下标都对应一个data和一个cur。 数据域data:用来存放数据元素,即要处理的数据; 游标cur:存放该元素的后继在数组中的下标,相当于单链表中的next指针; 为了方便插入数据,我们通常会把数组建立得大一些,以便有一些空闲空间而不致于出现溢出情况。 线性表的静态链表存储结构: #define MAXSIZE 1000 //假设链表的长度为1000(个元素) typedef struct { ElemType data; //数据域,int类型 int cur; //游标(Cursor),为0时表示无指向 }Component,StaticLinkList(MAXSIZE); 2.备用链表 由于数组的第一个和最后一个元素作为特殊元素处理,不存数据,因此我们把未使用的数组元素称为备用链表。 因此,我们规定: (1)数组第一个元素(即下标为0的元素)的游标cur存放第【本文来自鸿网互联 (http://www.68idc.cn)】一个空闲空间元素的下标(备用链表的第一个元素); (2)数组最后一个元素的游标cur存放第一个有数值的元素的下标(相当于单链表中的头结点作用)。当整个链表为空时则最后一个元素的游标cur为0。 (3)链表的最后一个有值元素的cur为0 \
\

升华笔记:如何将一维数组list中各分量链成一个备用链表? typedef int Status Status InitList(StaticLinkList list) { int i; //i为数组下标,MAXSIZE为链表长度 for(i=0;i 二、静态链表的插入/删除操作喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgoKCgoKCgogICAgvrLMrMG0se21xLLlyOu6zcm+s/2y2df3o6zX7rnYvPzKx9KqveK+9sjnus7Tw76yzKzEo8Titq/MrMG0se294bm5tcS05rSiv9W85LXEt9bF5KOs0OjSqsqxyerH66Oszt7Tw8qxys23xaGjCjxzdHJvbmc+MS6+ssyswbSx7bXEsuXI67LZ1/c8L3N0cm9uZz4KPHN0cm9uZz4oMSnL47eoy7zCtzwvc3Ryb25nPgogICAgzqrBy7Hmw/fK/dfp1tDExNCpt9bBv860sbvKudPDo6y94r72tcSw7Leoyse9q8v509DOpbGzyrnTw7n9tcS8sNLRsbvJvrP9tcS31sG/08PTzrHqY3VywbSzydK7uPaxuNPDtcTBtLHtKLy0v9XBtLHtKaOsw7+1sb340NCy5cjryrGjrLHjv8nS1LTTsbjTw8G0se3Jz8ihtcO12tK7uPa94bXjo6i8tM60sbvKudPDtcS12tK7uPa94bXjo6nX7s6qtP2y5cjr0MK94bXjoaMKyrXP1rvxyKG/1c/Qt9bBv8/CsepNYWxsb2NfU0xMuq/K/cvjt6ijugphLrvxyKHK/dfptdrSu7j21KrL2LXE086x6mN1cj1po6zG5LTmt8W1xMrHsbjTw8G0se21xLXa0ru49r/Vz9C94bXjOwpiLr2ryv3X6bXaabj21KrL2LXE086x6mN1cj1pJiM0MzsxuLMmIzIwNTQwO7j4zbfWuNXrCmMut7W72LG7yrnTw7XEyv3X6dSqy9jPwrHqCjxibG9ja3F1b3RlPgogaW50IGk9bGlzdFswXS5jdXI7ICAgICAgICAgLy/I52k9bGlzdFswXS5jdXI9NwogbGlzdFswXS5jdXI9bGlzdFtpXS5jdXI7IC8vzbfWuNXrbGlzdFswXS5jdXI9bGlzdFs3XS5jdXI9OAogcmV0dXJuIGk7CjwvYmxvY2txdW90ZT4KPHN0cm9uZz4oMinUtMLryrXP1jwvc3Ryb25nPgovKjEuyPSxuNPDv9W85MG0se3Oqr/Vo6zU8re1u9i31sXktcS94bXjz8Kx6qOst/HU8re1u9gwKi8KaW50IE1hbGxvY19TTEwoU3RhdGljTGlua0xpc3QgbGlzdCkKewogICAgaW50IGk9bGlzdFswXS5jdXI7ICAgICAgICAvL7vxyKGxuNPDwbSx7bXEtdrSu7j2veG148/CseootbHHsMr91+m12tK7uPbUqsvYtcRjdXK05rSitdrSu7j2sbjTw7/Vz9C1xM/CseopCiAgICBpZihsaXN0WzBdLmN1cikgICAgICAgICAgICAvL8jnuftsaXN0WzBdLmN1ciE9MKOs1PLLtcP3yv3X6bqs09C3x7/V1KrL2AogICAgewogICAgICAgICAgICBsaXN0WzBdLmN1cj1saXN0W2ldLmN1cjsgICAgLy/TydPa0qrEw7P20ru49rG408PBtLHttcS94bXjyrnTw6OsztLDx9Do0qq9q8r91+m12tK7uPbUqsvYtcRjdXK05rfFz8LSu7j2v9Wz9sC0tcTUqsvY1/exuNPDCiAgICB9CiAgICByZXR1cm4gaTsvL7e1u9ixu8q508O1xM/CseoKfTxicj4KCgoKLy/XosrNo7q82cjnz8jHsGxpc3RbMF0uY3VyPTcoyv3X6c/CseomIzIwNTQwOykstbHPwrHqzqo3tcS31sG/KMr91+nUqsvYKde8sbixu8q508PBy6Osvs21w9PQvdPM5tXfo6zL+dLUsNG31sG/NyhsaXN0W2ldLmN1cqOsxuTW0Gk9Nym1xGN1ciYjMjA1NDA7PTijrLizJiMyMDU0MDu4+M231KrL2KOobGlzdFswXS5jdXKjqaOs1q66877Nv8nS1LzM0Pi31sXk0MK1xL/Vz9C31sG/oaMvLwoKCi8qMi7U2kzW0LXaabj21KrL2Naux7Cy5cjr0MK1xMr9vt3UqsvYZSovCnR5cGVkZWYgaW50IFN0YXR1cwp0eXBlZGVmIGludCBFbGVtVHlwZQpTdGF0dXMgTGlzdEluc2VydChTdGF0aWNMaW5rTGlzdCBMLGludCBpLEVsZW1UeXBlIGUpCnsKICAgIGludCBqLGssbTsKICAgIGs9TUFYX1NJWkUtMTsgICAgLy/XotLio7prytfPyMrH1+6689K7uPbUqsvYtcTPwrHqICAgIAogICAgaWYoaiZsdDsxIA=="| j>ListLength(L)+1) return ERROR; j=Malloc_SLL(L); //a.获得空闲分量的下标 if(j) { L[j].data=e; //b.将数据赋值给此分量的data for(m=1;m
2.静态链表的删除操作 源码实现 /*1.将下标为k的空闲结点回收到备用链表*/ void Free_SSL(StaticLinkList space,int k) { space[k].cur=space[0].cur; //将数据的第一个元素cur(其值为备用链表的第一个空闲元素下标),赋值给要删除分量的cur space[0].cur=k; //把要删除的分量下标赋值给第一个元素的cur } /*2.删除在L中第i个数据元素e*/ typedef int Status Status ListDelete(StaticLinkList L,int i) { int i,k; if(iListLength(L)) return ERROR; k=MAXSIZE-1; //存储链表最后一个元素的下标 for(j=1;j 三、静态链表的优缺点 1.优点 在插入和删除操作时只需要修改游标,不需要移动元素,从而改进了在顺序存储结构中的插入和删除操作需要移动大量元素的缺点; 2.缺点 (1)没有解决连续存储分配带来的表长度难以确定的问题; (2)失去了顺序存储结构随机存取的特性;

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Huawei lancera l'année prochaine des produits de stockage MED innovants : la capacité du rack dépasse 10 Po et la consommation électrique est inférieure à 2 kW Huawei lancera l'année prochaine des produits de stockage MED innovants : la capacité du rack dépasse 10 Po et la consommation électrique est inférieure à 2 kW Mar 07, 2024 pm 10:43 PM

Ce site Web a rapporté le 7 mars que le Dr Zhou Yuefeng, président de la gamme de produits de stockage de données de Huawei, a récemment assisté à la conférence MWC2024 et a spécifiquement présenté la solution de stockage magnétoélectrique OceanStorArctic de nouvelle génération conçue pour les données chaudes (WarmData) et les données froides (ColdData). Zhou Yuefeng, président de la gamme de produits de stockage de données de Huawei, a publié une série de solutions innovantes Source de l'image : Le communiqué de presse officiel de Huawei joint à ce site est le suivant : Le coût de cette solution est 20 % inférieur à celui de la bande magnétique, et son coût est de 20 % inférieur à celui de la bande magnétique. la consommation électrique est 90 % inférieure à celle des disques durs. Selon les médias technologiques étrangers blockandfiles, un porte-parole de Huawei a également révélé des informations sur la solution de stockage magnétoélectrique : le disque magnétoélectronique (MED) de Huawei est une innovation majeure dans le domaine des supports de stockage magnétiques. ME de première génération

Compétences en développement Vue3+TS+Vite : comment chiffrer et stocker des données Compétences en développement Vue3+TS+Vite : comment chiffrer et stocker des données Sep 10, 2023 pm 04:51 PM

Conseils de développement Vue3+TS+Vite : Comment crypter et stocker des données Avec le développement rapide de la technologie Internet, la sécurité des données et la protection de la vie privée deviennent de plus en plus importantes. Dans l'environnement de développement Vue3+TS+Vite, comment chiffrer et stocker les données est un problème auquel chaque développeur doit faire face. Cet article présentera certaines techniques courantes de cryptage et de stockage des données pour aider les développeurs à améliorer la sécurité des applications et l'expérience utilisateur. 1. Chiffrement des données Chiffrement des données frontal Le chiffrement frontal est un élément important de la protection de la sécurité des données. Couramment utilisé

Processus d'installation de Git sur Ubuntu Processus d'installation de Git sur Ubuntu Mar 20, 2024 pm 04:51 PM

Git est un système de contrôle de version distribué rapide, fiable et adaptable. Il est conçu pour prendre en charge des flux de travail distribués et non linéaires, ce qui le rend idéal pour les équipes de développement de logiciels de toutes tailles. Chaque répertoire de travail Git est un référentiel indépendant avec un historique complet de toutes les modifications et la possibilité de suivre les versions même sans accès au réseau ni serveur central. GitHub est un référentiel Git hébergé sur le cloud qui fournit toutes les fonctionnalités du contrôle de révision distribué. GitHub est un référentiel Git hébergé sur le cloud. Contrairement à Git qui est un outil CLI, GitHub dispose d'une interface utilisateur graphique basée sur le Web. Il est utilisé pour le contrôle de version, ce qui implique de collaborer avec d'autres développeurs et de suivre les modifications apportées aux scripts et aux scripts au fil du temps.

Analyse approfondie du rôle et de l'utilisation du mot-clé static en langage C Analyse approfondie du rôle et de l'utilisation du mot-clé static en langage C Feb 20, 2024 pm 04:30 PM

Analyse approfondie du rôle et de l'utilisation du mot-clé static en langage C. En langage C, static est un mot-clé très important, qui peut être utilisé dans la définition de fonctions, de variables et de types de données. L'utilisation du mot-clé static peut modifier les attributs de lien, la portée et le cycle de vie de l'objet. Analysons en détail le rôle et l'utilisation du mot-clé static en langage C. Variables et fonctions statiques : les variables définies à l'aide du mot-clé static à l'intérieur d'une fonction sont appelées variables statiques et ont un cycle de vie global.

Comment utiliser correctement sessionStorage pour protéger les données sensibles Comment utiliser correctement sessionStorage pour protéger les données sensibles Jan 13, 2024 am 11:54 AM

Comment utiliser correctement sessionStorage pour stocker des informations sensibles nécessite des exemples de code spécifiques Que ce soit dans le développement Web ou le développement d'applications mobiles, nous devons souvent stocker et traiter des informations sensibles, telles que les informations de connexion des utilisateurs, les numéros d'identification, etc. Dans le développement front-end, l'utilisation de sessionStorage est une solution de stockage courante. Cependant, étant donné que sessionStorage est un stockage basé sur un navigateur, certains problèmes de sécurité doivent être pris en compte pour garantir que les informations sensibles stockées ne soient pas consultées et utilisées de manière malveillante.

Recherchez le nième nœud de la dernière liste chaînée en C++ à l'aide de la méthode récursive Recherchez le nième nœud de la dernière liste chaînée en C++ à l'aide de la méthode récursive Sep 15, 2023 pm 05:53 PM

Étant donné une liste à chaînage unique et un entier positif N en entrée. Le but est de trouver le Nème nœud à partir de la fin de la liste donnée en utilisant la récursivité. Si la liste d'entrée a des nœuds a → b → c → d → e → f et N vaut 4, alors le 4ème nœud du dernier sera c. Nous allons d'abord parcourir jusqu'au dernier nœud de la liste et au retour du nombre d'incréments récursifs (retour en arrière). Lorsque count est égal à N, un pointeur vers le nœud actuel est renvoyé comme résultat. Examinons différents scénarios d'entrée et de sortie pour cela - Entrée - Liste : -1→5→7→12→2→96→33N=3 Sortie − Le Nième nœud du dernier est : 2 Explication − Le troisième nœud est 2 . Entrée - Liste : -12 → 53 → 8 → 19 → 20 → 96 → 33N = 8 Sortie – Le nœud n'existe pas

Quelles sont les caractéristiques syntaxiques et structurelles des expressions lambda ? Quelles sont les caractéristiques syntaxiques et structurelles des expressions lambda ? Apr 25, 2024 pm 01:12 PM

L'expression Lambda est une fonction anonyme sans nom et sa syntaxe est la suivante : (parameter_list) -> expression. Ils présentent l’anonymat, la diversité, le curry et la fermeture. Dans des applications pratiques, les expressions Lambda peuvent être utilisées pour définir des fonctions de manière concise, comme la fonction de sommation sum_lambda=lambdax,y:x+y, et appliquer la fonction map() à la liste pour effectuer l'opération de sommation.

Le rôle et les scénarios d'application des méthodes statiques privées en PHP Le rôle et les scénarios d'application des méthodes statiques privées en PHP Mar 23, 2024 am 10:18 AM

Le rôle et les scénarios d'application des méthodes statiques privées en PHP En programmation PHP, une méthode statique privée est un type de méthode spécial. Elle n'est accessible qu'au sein de la classe dans laquelle elle est définie et ne peut pas être appelée directement de l'extérieur. Les méthodes statiques privées sont généralement utilisées pour l'implémentation logique interne d'une classe, offrant un moyen d'encapsuler et de masquer les détails. En même temps, elles ont les caractéristiques des méthodes statiques et peuvent être appelées sans instancier l'objet de classe. Ce qui suit abordera le rôle et les scénarios d’application des méthodes statiques privées et fournira des exemples de code spécifiques. Fonction : encapsuler et masquer les détails de l'implémentation : statique privée

See all articles