domingo, 22 de febrero de 2015

Lista Ligada con Objetos y Punteros Visual C++



#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

class NameDataSet
{
public:
 string sName;

 //la liga de la siguiente entrada de la lista
 NameDataSet *pNext;
};

//el puntero de la primera entrada de la lista
NameDataSet *pHead = nullptr;

//funcion agregar para las entradas
void add( NameDataSet *pNDS )
{
 //puntero de la entrada actual del inicio de la lista
 pNDS -> pNext = pHead;

 //punto de la cabeza del puntero de la entrada actual
 pHead = pNDS;
}

//funcion obtener dato - lee el nombre y seguro social y regreza nulo
NameDataSet *getData()
{
 //lee el primer nombre
 string name;
 cout << "Nombre: ";
 cin >> name;

 //si el nombre introducido es exit se sale
 if( name == "exit" )
 {
  return nullptr;
 }

 //obtiene una nueva entrada y rellena los valores
 NameDataSet *pNDS = new NameDataSet;
 pNDS -> sName = name;
 pNDS -> pNext = nullptr;

 return pNDS;
}

int main( int argc , char *argv[] )
{
 cout << "Lee los nombres de los estudiantes\n" << "Presiona exit si quieres salir" << endl;

 //Creo mi objeto
 NameDataSet *pNDS;

 while( pNDS = getData() )
 {
  //agrega los objetos
  add( pNDS );
 }

 cout << "Entradas: " << endl;

 for( NameDataSet *pIter = pHead ; pIter ; pIter = pIter -> pNext )
 {
  cout << pIter -> sName << endl;
 }

 system("pause");
 return 0;
}



No hay comentarios:

Publicar un comentario