elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con las Listas C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con las Listas C++  (Leído 1,804 veces)
98Fran

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Problema con las Listas C++
« en: 8 Septiembre 2019, 11:12 am »

Estoy viendo Listas y no entiendo muy bien que estructura tiene que tener la lista.
He visto listas que usan el mismo método que las colas, luego que el usar el primer valor como inicio de la lista y los siguientes valores entran como si fueran una cola (pero el primer valor sigue teniendo la misma posición) o colas ordenadas por tamaño

Con colas ordenadas con tamaño me refiero a:
Cola normal: Nodo1 (Nodo1->Siguiente) ->Apunta a-> Nodo2(Nodo2->Siguiente) ->Apunta a-> Nodo3(Nodo3->Siguiente) ->Apunta a-> NULL


Cola ordenada por tamaño: Nodo1 (Nodo1->Siguiente) ->Apunta a-> Nodo3(Nodo3->Siguiente) ->Apunta a-> Nodo2(Nodo2->Siguiente) ->Apunta a-> NULL

siendo N1<N3<N2;

La conclusión que he llegado yo es que si no esta ordenado como una cola o una pila es una lista xD.

Se que de listas hay varios tipos como doblemente enlaza y circulares pero me refiero que cuando se hace una sucesión de nodos, sino es LIFO y no es FIFO ya se convierte automáticamente en una lista no?


« Última modificación: 8 Septiembre 2019, 11:15 am por 98Fran » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Problema con las Listas C++
« Respuesta #1 en: 8 Septiembre 2019, 14:17 pm »

https://es.cppreference.com/w/cpp/container/list

Una lista es un contenedor sin mas. No sé que tiene que ver ahí FIFO o LIFO. Es como decir que un string es FIFO o LIFO?
Tienes el unordered o el ordered list.

Para que no te comas la cabeza te diría que una lista es exactamente igual que un vector al que es mas rápido meterle y quitarle cosas. Pero más lento de recorrer por como se situa cada elemento de la lista en memoria. A parte tiene algunos métodos útiles para una lista que diría que el vector no tiene.

Te dejo los métodos que tiene:

Cita de: Metodos List
assign   asigna elementos a la lista
back   devuelve una referencia a el último componente de la lista
begin   devuelve un iterator al principio de la lista
clear   elimina todos los componentes de la lista
empty   true si la lista está vacía
end   devuelve un iterator al final de la lista
erase   elimina componentes de la lista
front   devuelve una referencia al primer componente de la lista
insert   inserta componentes en la lista
max_size   devuelve el número máximo de elementos soportados por la lista
merge   une dos listas
pop_back   elimina el último componente de la lista
pop_front   elimina el primer componente de la lista
push_back   añade un componente al final de la lista
push_front   añade un componente al frente de la lista
rbegin   devuelve un reverse_iterator hacia el final de la lista
remove   elimina componentes de la lista
remove_if   elimina condicionalmente componentes de la lista
rend   devuelve un reverse_iterator hacia el inicio de la lista
resize   cambia el tamaño de la lista
reverse   pone al revés los componentes de la lista
size   devuelve el número de componentes en la lista
sort   ordena la lista
splice   unión de dos listas
swap   intercambia el contenido de una lista con el de otra
unique   elimina componentes duplicados

A parte de los métodos se pueden usar algunos de los algoritmos y operadores que funcionan con otros elementos de la biblioteca de plantillas estandar(STL.)


En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Problema con las Listas C++
« Respuesta #2 en: 8 Septiembre 2019, 23:04 pm »

Y sin olvidar que una lista ocupa el doble de tamaño en memoria que un arreglo convencional :')  ;-)
« Última modificación: 8 Septiembre 2019, 23:06 pm por Beginner Web » En línea

7w7
RayR

Desconectado Desconectado

Mensajes: 239


Ver Perfil
Re: Problema con las Listas C++
« Respuesta #3 en: 10 Septiembre 2019, 00:48 am »

Una lista, como te dice string Manolo, es simplemente un contenedor, sin limitaciones de acceso a sus elementos. Te parecen similares a las colas porque comúnmente estructuras como colas y pilas se implementan internamente justamente con listas enlazadas, sólo que con restricciones en cuanto a dónde puedes insertar y tomar elementos, por lo que son más simples en ese sentido. Pero eso son detalles de su implementación y nada impide crear una cola usando alguna otra estructura interna, así que no hay que mezclar los conceptos.

Y sin olvidar que una lista ocupa el doble de tamaño en memoria que un arreglo convencional :')  ;-)

Bueno, no necesariamente. Una lista enlazada simple le añade a cada elemento 4 u 8 bytes (el tamaño de un puntero). Si los elementos de la lista son, digamos, structs, y ocupan 32 bytes, entonces una lista ocupará un 12.5 o 25% más que si se usara un arreglo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Listas
Java
HadesDark 2 2,371 Último mensaje 9 Noviembre 2007, 22:00 pm
por Ragnarok
Ayuda Acerca De Listas y Listas Circulares (Revienta Memoria :S)
Programación C/C++
Gerik 0 5,097 Último mensaje 12 Septiembre 2010, 01:49 am
por Gerik
Problema con listas enlazadas.
Programación C/C++
samur88 9 4,895 Último mensaje 4 Diciembre 2010, 19:18 pm
por EddyC
Problema con listas en Python (Resuelto)
Scripting
MA40 2 6,327 Último mensaje 6 Abril 2012, 12:32 pm
por MA40
Problema basico con listas en C « 1 2 »
Programación C/C++
HardForo 14 4,545 Último mensaje 14 Abril 2016, 21:51 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines