Paste
Copy
Cut
Options

¡Tu solución está lista!

Nuestra ayuda de expertos desglosó tu problema en una solución confiable y fácil de entender.

Mira la respuesta
  • Pregunta: COP4530 Proyecto 3: Contenedor de listas doblemente enlazadas - Módulo de interfaz STL Detalles de la asignación Objetivos: Comprender la programación genérica y la ocultación de información mediante el desarrollo de contenedores genéricos. Familiarizarse con el concepto de plantilla de clase y su uso. Uso de clases anidadas (iteradoras). Uso del espacio

    COP4530 Proyecto 3: Contenedor de listas doblemente enlazadas - Módulo de interfaz STL Detalles de la asignación Objetivos: Comprender la programación genérica y la ocultación de información mediante el desarrollo de contenedores genéricos. Familiarizarse con el concepto de plantilla de clase y su uso. Uso de clases anidadas (iteradoras). Uso del espacio de nombres. Sobrecarga del operador. Tarea: Implementar una lista de plantilla de clase de lista doblemente enlazada y sus iteradores asociados. Requisitos: se proporciona un archivo de encabezado List.h, que contiene las interfaces de la plantilla de clase de lista doblemente vinculada List. En particular, contiene una estructura de nodo anidada y dos clases de iteradores anidados (iterator y const_iterator). No puede cambiar nada en el archivo List.h. El archivo List.h se adjunta a esta tarea. Se ha incluido un programa controlador test_list.cpp. Es un programa de prueba de ejemplo que ejecutará algunas pruebas en su implementación de la plantilla de clase de lista doblemente enlazada para diferentes tipos de datos. No realice ningún cambio en este programa de controlador. Sin embargo, su clase será probada con algo más que este controlador de muestra. Se recomienda que escriba otros programas de controladores propios para realizar pruebas más exhaustivas. Debe implementar las funciones miembro de la plantilla de clase de lista doblemente enlazada List en un archivo llamado List.hpp. Tenga en cuenta que List.hpp se ha incluido en el archivo de encabezado List.h (hacia el final del archivo). Como comentamos en la conferencia, no debes intentar compilar List.hpp (o List.h) por sí mismos. Estos comprenden un encabezado que se incluirá en otros programas que pueda escribir. Debe implementar todas las funciones miembro de List, List::iterator y List::const_iterator, y las funciones sobrecargadas sin clase operator==(), operator. ), y operador<< () incluido en Lista.h. El diseño del contenedor Lista sigue el presentado en el libro de texto. Tiene tres variables miembro, el tamaño, la cabeza y la cola. theSize registra el número de elementos de la lista. La cabeza debe apuntar al primer nodo, la cola debe apuntar a un ganglio centinela (uno pasó por el último nodo de datos). Una lista vacía sólo contendrá el ganglio centinela. Su implementación contendrá más funciones que las de la implementación del libro de texto. Describimos los requisitos de cada función a continuación (es posible que estas especificaciones no escriban las firmas de las funciones en detalle; consulte el archivo List.h para obtener la declaración detallada de la función). Funciones miembro de la clase const_iterator anidada: const iterator(): constructor predeterminado de parámetro cero. Establezca la corriente del puntero en nullptr. operador: devuelve una referencia al elemento correspondiente en la lista llamando a la función miembro retrieve(). operador++(), operador++(int), operador--(), operador--(int): operadores de incremento y decremento de prefijo y postfijo. operador==()y operador!=(): dos iteradores son iguales si se refieren al mismo elemento. recuperar(): devuelve una referencia al elemento correspondiente en la lista. iterador constante (Nodo** p): constructor de un parámetro. Establezca el puntero actual en el puntero del nodo dado p. Nota: La clase const_iterator está diseñada para acceder a nodos individuales cambiándolos. 
    student submitted image, transcription available
  • Chegg Logo
    Hay 3 pasos para resolver este problema.
    Solución
    Paso 1

    Introducción

    La tarea es implementar una plantilla de clase de lista doblemente enlazada. Lista y sus...

    Mira la respuesta completa
    answer image blur
    Paso 2
    Desbloquea
    Paso 3
    Desbloquea
    Respuesta
    Desbloquea