Una array en C / C++ o en cualquier lenguaje de programación es una colección de elementos de datos similares almacenados en ubicaciones de memoria contiguas y se puede acceder a los elementos aleatoriamente utilizando índices de una array. Se pueden usar para almacenar la colección de tipos de datos primitivos como int, float, double, char, etc. de cualquier tipo en particular. Para agregarle, una array en C/C++ puede almacenar tipos de datos derivados como estructuras, punteros, etc. A continuación se muestra la representación gráfica de una array.
Una lista enlazada es una estructura de datos lineal que consta de Nodes donde cada Node contiene una referencia al siguiente Node. Para crear una lista de enlaces, necesitamos un puntero que apunte al primer Node de la lista.
Enfoque: para crear una array de listas vinculadas a continuación se encuentran los requisitos principales:
- Una array de punteros .
- Para realizar el seguimiento de la array de punteros creada anteriormente, se necesita otro puntero que apunte al primer puntero de la array. Este puntero se llama puntero a puntero .
A continuación se muestra la representación pictórica de la array de listas enlazadas:
A continuación se muestra el programa C++ para implementar la array de lista enlazada:
C++
// C++ program to illustrate the array // of Linked Lists #include <iostream> using namespace std; // Structure of Linked Lists struct info { int data; info* next; }; // Driver Code int main() { int size = 10; // Pointer To Pointer Array info** head; // Array of pointers to info struct // of size head = new info*[size]; // Initialize pointer array to NULL for (int i = 0; i < size; ++i) { *(head + i) = NULL; } // Traverse the pointer array for (int i = 0; i < size; ++i) { // To track last node of the list info* prev = NULL; // Randomly taking 4 nodes in each // linked list int s = 4; while (s--) { // Create a new node info* n = new info; // Input the random data n->data = i * s; n->next = NULL; // If the node is first if (*(head + i) == NULL) { *(head + i) = n; } else { prev->next = n; } prev = n; } } // Print the array of linked list for (int i = 0; i < size; ++i) { info* temp = *(head + i); // Linked list number cout << i << "-->\t"; // Print the Linked List while (temp != NULL) { cout << temp->data << " "; temp = temp->next; } cout << '\n'; } return 0; }
0--> 0 0 0 0 1--> 3 2 1 0 2--> 6 4 2 0 3--> 9 6 3 0 4--> 12 8 4 0 5--> 15 10 5 0 6--> 18 12 6 0 7--> 21 14 7 0 8--> 24 16 8 0 9--> 27 18 9 0
Publicación traducida automáticamente
Artículo escrito por mohdanas1612 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA