[ Foro de C++ ]

uso de arreglos de lista

03-Jul-2019 19:56
alexander morgan
1 Respuestas

//hola chic@s mi duda es como implementaría arreglos en estructuras nodo ejemplo//  este es mi código solo maneja nodos pero no usa arreglos  de una lista :/




#include <string>
#include <stdio.h>
#include<conio.h>
#include<iostream>
#include <iostream>

using namespace std;

struct nodo{
      string nro;        // en este caso es una cadena
      struct nodo *sgte;
};
typedef struct nodo *Tlista;

void insertarInicio(Tlista &lista, string valor)
{
  Tlista q;
   q = new(struct nodo);
   q->nro = valor;
   q->sgte = lista;
   lista  = q;
    cout<<"\n \telemento "<<valor<<" insertado correctamente";    
}
void buscarElemento(Tlista lista, string valor)
{
   Tlista q = lista;
   int i = 1, band = 0;

   while(q!=NULL)
   {
       if(q->nro==valor)
       {
           cout<<endl<<" Encontrada en posicion "<< i <<endl;
           band = 1;
       }
       q = q->sgte;
       i++;
   }

   if(band==0)
       cout<<"\n\n Numero no encontrado..!"<< endl;
}

void reportarLista(Tlista lista)
{
    int i = 0;

    while(lista != NULL)
    {
         cout <<' '<<"->" << lista->nro;
         lista = lista->sgte;
         i--;
       
    }
     getch();
}


void eliminarElemento(Tlista &lista, string valor)
{
   Tlista p, ant;
   p = lista;

   if(lista!=NULL)
   {
       while(p!=NULL)
       {
           if(p->nro==valor)
           {
               if(p==lista)
                   lista = lista->sgte;
               else
                   ant->sgte = p->sgte;

               delete(p);
               return;
           }
           ant = p;
           p = p->sgte;
           
       }
       
   }
   else
       cout<<" Lista vacia..!";
}


void menu1()
{
printf(" Estructuras Dinamicas de Datos \n");
   printf(" Listas enlazadas \n\n");
   cout<<"\n\t\tLISTA ENLAZADA SIMPLE\n\n";
   cout<<" 1. HOJA DE PRESENTACION             "<<endl;
   cout<<" 2. CREAR NODOS AL INICIO            "<<endl;
   cout<<" 3. ELIMINAR NODO X DE LA LISTA      "<<endl;
   cout<<" 4. BUSCAR ELEMENTO EN LA LISTA      "<<endl;
   cout<<" 5. IMPRIMIR LOS NODOS DE LISTA      "<<endl;
   cout<<" 6. SALIR                            "<<endl;
   cout<<""<<endl;
   cout<<""<<endl;

   cout<<"\n INGRESE OPCION: ";
}


/*                        Función Principal
---------------------------------------------------------------------*/

int main()
{
   Tlista lista = NULL;
   int op;     // opcion del menu
   string _dato;  // elemenento a ingresar
   int pos;    // posicion a insertar


   system("color 0b");

   do
   {
       menu1();  cin>> op;

       switch(op)
       {
           case 1:

     
               
           break;


           case 2:
cout<< "\n NUMERO A INSERTAR: "; cin>> _dato;  
insertarInicio(lista, _dato);
               
           break;


           case 3:
            cout<<"\n Valor a eliminar: "; cin>> _dato;
            cout<<"\n el  Valor se a  eliminado correctamente: "<<_dato;
               eliminarElemento(lista, _dato);
           break;
           case 4:
              cout<<"\n Valor a buscar: "; cin>> _dato;
                buscarElemento(lista, _dato);
           break;
case 5:
           
             cout << "\n\n MOSTRANDO LISTA\n\n";
                reportarLista(lista);
               
break;
case 6:
break;

                   }

       cout<<endl<<endl;
       system("pause");  system("cls");

   }while(op!=7);
  system("pause");

  getch();
  return 0;
}


06-Jul-2019 12:39
Nacho Cabanes (+83)

¿Cambiar el string que hay dentro del struct por un array? ¿Un array con qué contenido?  ¿Con tamaño prefijado o variable? ¿Y entonces eso cómo va a afectar a la lógica? Porque, por ejemplo, añadir no cambia mucho, pero ¿cuál va a ser el criterio para borrar?






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)