Estructuras de datos y algoritmos C ++

Estructuras de datos y algoritmos C ++: significa organizar u organizar los elementos de una manera particular. Cuando decimos que tenemos que organizar los elementos, esos elementos se pueden organizar de diferentes formas. Por ejemplo, los calcetines se pueden organizar de varias maneras diferentes. Puedes guardarlo en tu armario todo desordenado. O puede mantenerlo perfectamente doblado. La mejor manera puede ser doblar y organizarlos en cuanto al color. Entonces, para buscar un par de calcetines en particular, el tercer arreglo es perfecto.

De manera similar a la organización de los calcetines, los datos también se pueden organizar de diferentes maneras o formas. Estas diferentes formas de organizar los datos se denominan Estructura de datos. Veamos una definición formal de una estructura de datos y las estructuras de datos y los algoritmos básicos.

Estructuras de datos y algoritmos C ++:

El modelo lógico o matemático de una organización particular de datos.

O

Es una forma particular de organizar los datos en una computadora para que puedan ser utilizados.

Similar a los calcetines; La organización diferente de la lista de estructuras de datos y algoritmos C ++ disponibles es:

  1. Formación
  2. Lista enlazada
  3. Apilar
  4. Cola
  5. Árbol
  6. Grafico
  7. Tabla de picadillo
  8. Montón
  9. Registros
  10. Mesas

Estas estructuras de datos y algoritmos C ++ son muy importantes durante la programación. Un buen programador siempre pone énfasis en la estructura de datos en lugar del código. Cada lenguaje de programación funciona en varias estructuras de datos y algoritmos en C ++. Las estructuras de datos que están disponibles en C ++ son las siguientes.

  1. Formación
  2. Lista enlazada
  3. Apilar
  4. Cola
  5. Árbol
  6. Grafico
  7. Tabla de picadillo
  8. Montón

Discutamos esto uno por uno:

Matriz n. ° 1

La matriz es un tipo más simple de estructuras de datos y algoritmos C ++. La matriz se define como una colección secuencial de tamaño fijo de elementos de datos del mismo tipo de datos. Por ejemplo, a0 = 12, a1 = 21, a2 = 14, a3 = 15 … Podemos representar una matriz unidimensional como se muestra en la figura:

Dónde

0, 1, 2, 3… ..n se llama subíndice o índice

a (1), a (2), … a (n) se llama variable de subíndice

Puede ser 1-Dimensional, 2-Dimensional, 3-Dimensional, etc., multidimensional.

En la memoria, la matriz se almacena en ubicaciones de memoria contiguas.

La dirección más baja corresponde al primer elemento.

La dirección más alta corresponde al último elemento.

Podemos declarar la matriz 1-D (1-Dimensional) en C ++ de la siguiente manera

dataType arrayName (arraySize);

Por ejemplo, int num (5);

Inicializando matriz en C ++

num = (23, 10, 12, 3, 6);

Podemos combinar declaración e inicialización en una sola declaración de la siguiente manera.

int num = (23, 10, 12, 3, 6);

Cuando deseamos asignar dinámicamente el tamaño de una matriz, deberíamos crear un nuevo operador de la siguiente manera

int * a = new int (tamaño);

La desventaja de la matriz es que la inserción y eliminación de elementos es lenta como en la matriz ordenada y su almacenamiento de tamaño fijo.

# 2 Lista vinculada

La lista se refiere a una colección lineal de artículos. Una lista vinculada es una serie de nodos conectados (elemento de datos) como se muestra en la figura 3. El nodo del encabezado apunta al primer nodo de la lista y el último nodo apunta a NULL indicado porÆ. Como cada nodo contiene al menos.

  1. Un dato (cualquier tipo)
  2. Puntero al siguiente nodo en la lista

La lista vinculada se representa en la memoria utilizando dos matrices. Una matriz almacena información llamada información que son datos que se almacenarán y otra almacena el campo del siguiente puntero llamado LINK que es una dirección del siguiente nodo.

Una ventaja de una lista vinculada sobre una matriz:

Tanto una matriz como una lista vinculada son representaciones de una lista de elementos en la memoria. La diferencia importante es la forma en que los elementos están vinculados entre sí. La principal limitación de la matriz es la inserción de elementos en la matriz y la eliminación de elementos de la matriz ordenada es difícil ya que los elementos de descanso tienen que moverse. La inserción y eliminación de elementos de una lista vinculada son muy simples.

Nota: conviértase en desarrollador de C ++
Aprenda a diseñar y personalizar programas para varias plataformas. Codifique, pruebe, depure e implemente aplicaciones de software. Desarrolle habilidades para garantizar que las aplicaciones funcionen sin problemas.

Los tipos de lista vinculada son:

1. Lista vinculada individualmente : contiene solo un campo vinculado que contiene la dirección del siguiente nodo en la lista y la información archivada que contiene la información que se almacenará.

2. Single Linked Linked List es una lista única, pero el último nodo de la lista contiene la dirección del primer nodo en lugar de nulo. Ese es el contenido de head y el siguiente campo del último nodo son iguales.

3. La lista doblemente vinculada contiene dos campos vinculados, anterior y siguiente. Un campo vinculado anteriormente que contiene una dirección del nodo anterior en la lista y el siguiente campo vinculado contiene la dirección del siguiente nodo en la lista y la información archivada contiene la información como una tienda.

4. La lista vinculada circular doble es una lista doblemente vinculada, pero el siguiente campo del último nodo contiene la dirección del primer nodo en lugar de nulo.

Cursos recomendados

  • Curso en VB.NET
  • Capacitación en programación de ciencia de datos
  • Curso en línea ISTQB
  • Curso de entrenamiento de Kali Linux

La implementación de la lista vinculada en C ++ implica la creación de un nodo, la eliminación de un nodo de la lista, la inserción de un nodo recién creado en la lista y la búsqueda de un nodo con una clave particular.

El código para la creación del nodo se proporciona de la siguiente manera:

Insertar un nodo en la lista implica tres casos

1. Insertar un nodo al principio significa insertar el nodo recién creado como nodo inicial. Para insertar un nodo al principio, primero haya creado un nuevo nodo y haga que el nuevo nodo apunte al inicio anterior, y luego actualice el inicio para apuntar al nuevo nodo como se muestra en la figura siguiente:

Código para insertar un nodo al principio:

2. Insertar un nodo en la cola significa insertar el nodo recién creado como el último nodo. Para insertar el nodo como un nodo de cola, debe crear un nuevo nodo y hacer que el último nodo apunte al nuevo nodo y luego actualice la cola para apuntar al nuevo nodo.

3. Insertar un nodo en una posición dada implica la creación de un nuevo nodo temporal. Luego, debe encontrar la posición de inserción del nodo recién creado.

Código para la inserción del nodo en una posición determinada:

Eliminar un nodo de la lista implica eliminar un nodo de la lista existente. La eliminación del nodo de la lista de enlaces es simple que insertar un nodo en la lista. En C ++, el código para la eliminación del nodo se da de la siguiente manera:

Al atravesar un nodo con una clave (valor) particular de una lista, se buscará un nodo de la lista cuya información coincida con la clave de un nodo dado. El siguiente código de C ++ atravesará una lista. estructuras de datos y algoritmos C ++

# 3 pila

Una pila es una lista de elementos en la que un elemento puede insertarse o eliminarse solo en un extremo, llamado la parte superior de la pila. Considere el ejemplo de una torre de Hanoi. Aquí, cuando tenemos que insertar un disco, tenemos que insertarlo solo desde la parte superior y, de manera similar, la extracción del disco se realiza solo desde la parte superior.

La pila utiliza el principio LIFO significa que funciona en el orden Último en primer orden. Ese es el último elemento agregado a la pila, es el primer elemento de eliminación. Por lo tanto, hay cuatro operaciones básicas que se pueden realizar en la pila:

  • Isempty: esta operación ve si la pila está vacía.
  • Empujar : esta operación agrega un nuevo elemento para apilar.
  • Pop: Esta operación elimina un elemento del elemento de la pila agregado más recientemente.
  • Arriba: esta operación devuelve el elemento que se agregó a la pila más recientemente.

La siguiente figura es un ejemplo de la pila en la que la inserción en la pila y la eliminación de una pila del elemento se realiza desde la parte superior de la pila y en ningún otro lugar.

Desbordamiento de pila

La condición resultante de intentar empujar un elemento a una pila completa.

Pila de flujo inferior

La condición resultante de intentar hacer estallar una pila vacía.

Aquí hemos mostrado algunas operaciones push y pop en la pila. Supongamos que inicialmente la pila está vacía, luego agregamos F, A, M, R, N. Luego aparece dos veces y presiona N, H, B, T, K, O, P.

Implementación de la pila:

Se puede implementar utilizando una matriz o una lista vinculada tanto.

El siguiente código dado muestra cómo se implementa la pila en C ++ usando Class. Aquí se ha definido una clase llamada pila en la que se creó una matriz llamada palo con un tamaño dinámico y dos funciones principales, push y pop.

Desbordamiento de pila: Cuando arriba> = tamaño-1

Desbordamiento de pila: Cuando arriba <0

Artículos relacionados:-

Aquí hay algunos artículos que están relacionados con las estructuras de datos y algoritmos C ++ que le ayudarán a obtener más detalles sobre los Algoritmos C ++ y las estructuras de datos y algoritmos, por lo que le rogamos que acceda al enlace que se proporciona a continuación. Si le gustan las estructuras de datos del artículo y los algoritmos C ++, envíenos su valioso comentario.

  1. Hoja de trucos para lenguaje de programación C ++
  2. Linux vs Ubuntu
  3. Preguntas de la entrevista de C ++ que debes saber
  4. Estructuras de datos y algoritmos Preguntas de la entrevista | Más útil
  5. El mejor artículo para algoritmos y criptografía (ejemplos)
  6. 8 preguntas y respuestas impresionantes de la entrevista del algoritmo
  7. Guía increíble en Kali Linux vs Ubuntu
  8. C ++ Vector vs Array: ¿Cuáles son las mejores funciones?