Programmera spel i C++ för nybörjare/C++ referenser online/länkad lista i C++ för nybörjare


// Exempel på enkelriktad länkad lista
// Enda saken som syns och sparas är "name"

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;

class node {
public:
string name; //namnet som skall sparas
node *next; //Pekare till nästa post i kön

 node(string aName) //Konstruktor
   {
	name = aName; //namnet som matas in vid new
	next = NULL; //Finns ingen efter om den läggs sist
   } 
          
}; 

int _tmain(int argc, _TCHAR* argv[])
{

node *root = NULL; //första noden i listan
node *p_node; // pekare som går fram och tillbaka i nod kön
node *new_node; // pekare till ny nod
string a_name; //namnet som skall in


while (true) 
{ //Så länge man inte aktiverat "break"
  cout << "Skriv in ett namn (eller ENTER för att avbryta): ";

 getline (cin, a_name); //a_name skrivs in
  if (a_name.empty()) //Om det är en sträng utan bokstäver
  break; //while blir false

  new_node = new node(a_name); //finns text skapas en ny nod
   
    //Om listan är ny eller noden är den första,
    //sätts den in som root nod, annars:
   //sök efter sista noden i listan och placera in den efteråt   
 if (root == NULL || (a_name < root->name)) 
  {
   new_node->next = root; //Placeras som första noden = root
   root = new_node; //new_node skapas som försdta medlemmen i kön.
 }
	
 else //det finns mer än en nod i listan
   { //else

   new_node->next = p_node->next; //Gå till nästa
   p_node->next = new_node; 
	
 } //slut else

 } //slut while true


p_node = root; // Skriv ut alla noderna från första posten

while (p_node) //Så länge det finns noder
 {
 cout << p_node->name << endl; //skriv ut namnet
 p_node = p_node->next; //Gå till nästa
 }

return 0;
}