Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> C /C + + Programming >> Content
Hoe maak je een Dubbel - Linked List in C Programming Maak
Programmeurs gebruiken gelinkte lijsten zo lineair traversable datastructuren . Dit betekent dat de programmeur kan starten vanaf het begin van de lijst (de kop ) en vooruit door de lijst een item tegelijk . Deze methode van data-opslag maakt het ook mogelijk de programmeur om efficiënt gegevens toe te voegen aan de lijst , het aanbieden van een meer veelzijdig alternatief voor bepaalde andere datastructuren zoals dynamische arrays . Dit voorbeeld laat zien hoe u een eenvoudige dubbel - gelinkte lijst , die de scheepvaart van de lijst kunt op twee richtingen (vooruit en achteruit ) construeren . Wat je nodig hebt
Text Editor
C /C + + Compiler of IDE ( zoals Microsoft Visual Studio ) op Twitter Toon Meer Aanwijzingen
1

Maak het knooppunt structuur die zal dienen als het datatype van de gelinkte lijst . In de tekst editor , voer de volgende code :

# include

int main
{

struct listNode
{

int databank ;

strut listNode * vorig
;

listNode
strut * volgende ;

} ;

return 0 ;

}

de " struct listNode " blok van code maakt een sjabloon voor de items die de lijst zal bevolken . Dit sjabloon definieert een listNode als die drie elementen : een data-item ( een integer ) en verwijzingen naar de vorige en volgende items in de lijst . Een pointer is een variabele die een geheugen -adres bezit . Pointers worden gebruikt om te verwijzen naar andere data structuren in diepe geheugen en dynamisch geheugen toewijzen tijdens de uitvoering van de code . Kopen van 2

verklaren de variabelen die de lijst structuur zal organiseren . Plaats dit voorbeeld code in het tekstbestand :

int size
;

listNode
* hoofd ;

listNode * staart
;

staart
= hoofd ; < br >

kop = staart ;

Deze twee pointers zijn het begin en het einde van de lijst , respectievelijk . Met deze aanwijzers , de programmeur weet waar het begin van de lijst en waarbij het einde door eenvoudig als de huidige node de "kop " en "staart" pointer . Beiden verwijzen naar elkaar in het geval van een lege lijst .
3

Maak een eenvoudig algoritme om items toevoegen uit de gelinkte lijst . Volg dit voorbeeld code :

void append
( int num ) op

struct listNode * tracer = head { ;

struct listNode * newNode = ( struct listNode * ) malloc ( sizeof ( struct listNode ) ) ;

newNode - > data = num
;

als ( hoofd == NULL ) {

hoofd
= newNode ;

tail = newNode ;

newNode - > prev = head ;

newNode - > volgende = staart
;

}


else {

terwijl ( tracer - > volgende = staart ! ) op Twitter

{ tracer = tracer - > volgende ; }

newNode - > prev = tracer
;

newNode - > volgende = staart ;

tracer - > volgende = knooppunt
;

tail
= knooppunt ;

}

grootte
+ + ;

}

Deze code voegt een knoop aan het einde van de lijst . Het begint door een pointer naar het begin van de lijst ( " tracer " ) . Dan , het creëert een pointer naar een dynamisch toegewezen blok van het geheugen gereserveerd voor een nieuw gecreëerde listNode ( newNode ) en stelt de gegevens van dat knooppunt aan de integer " num " . Indien het hoofd punten op NULL ( wat betekent dat de lijst leeg is, omdat het hoofd wijst niets) , dan is de code voegt het knooppunt het begin van de lijst . Anders wordt de lus "terwijl" doorloopt de knooppunten in de lijst tot aan de laatste knoop . Wanneer " tracer " wijst naar het laatste element van de lijst , de code voegt het knooppunt . De laatste opdracht draagt ​​bij aan de " grootte" integer , het bijhouden van de elementen in de lijst
4

Maak een algoritme te verwijderen en punt uit het einde van de lijst : .

leegte removeNode ( ) {

if ( tail = head ! ) {

struct listNode * end = staart ;

tail
= tail - > vorige ;

gratis ( eind ) ;

grootte
- ;

}

}
Deze code maakt een pointer ( " end " ) om de laatste element van de lijst ( hetzelfde element "staart" wijst op ) . Vervolgens wordt de staart ingesteld om onmiddellijk te wijzen op het element voordat het laatste element ( het knooppunt wees op de " vorige " pointer van het laatste element ) . Tenslotte wordt het geheugen gebruikt door laatste knoop , door " end " genoemd , vrijgemaakt voor verder gebruik .

Previous: Next:
  C /C + + Programming
·Hoe je encryptie-algoritmen ge…
·Hoe te Verwijzing van Void Poi…
·Hoe kan ik een string aan Bool…
·PowerShell Objecttypen 
·Functies activeren tellen in C…
·Hoe te Cout en Cin Gebruik in …
·Hoe te springen van een Void f…
·Hoe te converteren van een num…
·Hoe kan ik mijn SYSDBA wachtwo…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Hoe te berekenen in Adobe Livecycle ES 
·PLC-programmering instructies 
·Hoe te indexeren een Heap Tabel 
·Hoe vindt u het laatste teken van een st…
·Hoe niet - ASCII tekens omzetten in Pyth…
·Hoe maak je een CSV importeren in een Da…
·Hoe de System Date Get Van Python 
·PHP Xcode Tutorial 
·Hoe een Access- query uit te voeren in V…
Copyright © Computer Kennis http://www.nldit.com