es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy intentando crear una Tabla Hash que almacene valores utilizando un arreglo.

Estoy teniendo problemas para definir y crear dicho arreglo, sin embargo.

template <typename DataType, typename KeyType> class HashTable {
public:
HashTable(int intTableSize);
HashTable(const HashTable& other);
HashTable& operator=(const HashTable& other);
HashTable::~HashTable();

void insert(const DataType&amp; newDataItem);
bool remove(const KeyType&amp; deleteKey);
bool retrieve(const KeyType&amp; searchKey, DataType&amp; returnItem) const;
void clear();

bool isEmpty() const;

void showStructure() const;

double standardDeviation() const;

void hashFunction();
void hashFunction(const DataType&amp; nodeValue);
}

Contiene miembros privados:

Table <DataType, KeyType> *dataTable;
int tableSize;
“`

Necesito que dataTable sea de tipo de dato arreglo. ¿Cómo implemento este cambio? ¿Necesito hacer cambios en los nombres de tipo? Cuando llamo a dataTable en HashTable.cpp, obtengo un error que dice “dataTable: Identificador no encontrado. Gracias por cualquier ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para definir y crear un array de tipo de datos Table<DataType, KeyType> en la clase HashTable, puedes modificar el miembro privado dataTable para que sea un array de Table<DataType, KeyType>. Puedes implementar este cambio cambiando los miembros privados de la siguiente manera:

    Table<datatype, keytype=""> *dataTable;
    int tableSize;
    

    Para crear un array de Table<DataType, KeyType>, puedes utilizar la asignación de memoria dinámica en el constructor de la clase HashTable, donde asignas un array de punteros de Table<DataType, KeyType> de tamaño tableSize.

    template <typename datatype,="" typename="" keytype=""> 
    HashTable<datatype, keytype="">::HashTable(int intTableSize) {
        tableSize = intTableSize;
        dataTable = new Table<datatype, keytype="">[tableSize];
    }
    

    Luego, puedes acceder a los elementos del array utilizando el operador [] de la siguiente manera:

    dataTypeObj = dataTable[hashValue][i];
    

    Si sigues recibiendo un error que indica “dataTable: Identificador no encontrado” cuando lo llamas en el archivo HashTable.cpp, asegúrate de haber incluido los archivos de encabezado adecuados y de hacer referencia a la variable dataTable correctamente.</datatype,></datatype,></datatype,>

Comments are closed.