Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Listas enlazadas - Generar lista con repetidos
/* Implementar una función que reciba una lista de palabras y genere una nueva lista con las palabras que se encuentran repetidas. La comparación para determinar la repetición debe ser sensible a mayúsculas y minúsculas. */ #include <iostream> #include <string> using namespace std; struct Nodo { string palabra; Nodo * siguiente; }; /* Dado el puntero inicial a una lista y una palabr, genera un nuevo nodo e inserta este nuevo nodo al principio. Retorna el puntero inicial. */ Nodo* insertar(Nodo* inicio, string palabra){ Nodo * nuevo = new Nodo; nuevo->palabra = palabra; nuevo->siguiente = inicio; return nuevo; } /* Recorre una lista a partir del puntero dado, buscando si la palabra pasada por parámetro se encuentra en la lista. Retorna true si se encuentra, false si no. */ bool palabraRepetida(Nodo* inicio, string palabraBuscada){ Nodo* aux = inicio; while(aux != nullptr){ if (aux->palabra == palabraBuscada){ return true; } aux = aux->siguiente; } return false; } /* Dada una lista de palabras, genera una nueva que contenga solamente las palabras repetidas. Retorna el puntero inicial a la nueva lista. */ Nodo* generarListaRepeticiones(Nodo* inicio){ Nodo* repeticiones = nullptr; for (Nodo* aux = inicio; aux != nullptr; aux = aux->siguiente){ if (palabraRepetida(aux->siguiente, aux->palabra)){ repeticiones=insertar(repeticiones, aux->palabra); } } return repeticiones; } /* Imprime en pantalla todos los elementos de la lista. */ void imprimir(Nodo* inicio){ for (Nodo* aux = inicio; aux != nullptr; aux = aux->siguiente) cout << aux->palabra << endl; } int main() { Nodo* inicio = nullptr; inicio = insertar(inicio, "hola"); inicio = insertar(inicio, "adios"); inicio = insertar(inicio, "hola"); inicio = insertar(inicio, "hola"); inicio = insertar(inicio, "gracias"); inicio = insertar(inicio, "adios"); inicio = insertar(inicio, "bienvenido"); Nodo* repetidas = generarListaRepeticiones(inicio); imprimir(repetidas); }
run
|
edit
|
history
|
help
0
mytemp
FindMissingLagrange
Hash(Prototipo)
TREAP RANGE QUERY (but it's runtime is not that good)
TempQuickDoubArray
Optimization Lab 2
Suma
MapTel2
shuffle_example
1