[ Foro de C++ ]
//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;
}
¿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.)