Está en la página 1de 9

ESTRUCTURA DE DATOS

1. EXPLICAR QUE ES LA EXTRACCIÓN DE SUB CADENA, LOS


VECTORES Y EJEMPLOS?

• Extracción (subcadena): Permite formar una cadena (subcadena) a partir de otra ya existente. La subcadena se forma tomando
un tramo consecutivo de la cadena inicial. Si por ejemplo; strNombre; es una variable de tipo cadena que contiene “Juan Pedro
Ortega” y denotamos por (n:m) la extracción de metacaracteres tomados a partir del lugar n, entonces strNombre(6:5) es
una subcadena que contiene “Pedro”, teniendo en cuenta el caractér de; vacio. Parar extraer un caractér, vía un método
directo, sería; el nombre seguido por el lugar que ocupa dentro de la cadena, strCaracter(6)=”p”.Esta técnica aplicada con las
estructuras de control, con ciclos, fácilmente podemos recorrer la estructura de datos, cadena, para extraer y comparar cada
uno de los elementos en busca de un caractér especial de nuestro interés. Por ejemplo buscar el signo de arroba (@) en una
cadena para comprobar si existe, entonces es un correo válido. Además tendría que contener un nombre de domino válido.

• Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los
valores contenidos tiene una posición asociada que se usará para accederlos. Está posición o índice será siempre un número
entero positivo.

• En C la cantidad de elementos que podrá contener un vector es fijo, y en principio se define cuando se declara el vector. Los
vectores se pueden declarar de la siguiente forma:

• tipo_elemento nombre[largo];
2.¿CUÁNDO SE USA LA BÚSQUEDA DE UN VECTOR, BÚSQUEDA
SECUENCIAL, BÚSQUEDA BINARIA Y DAR EJEMPLO?

Se utiliza cuando el vector en el que queremos determinar la existencia o no de un elemento está ordenado, o
puede estarlo, este algoritmo reduce el tiempo de búsqueda considerablemente, ya que disminuye
exponencialmente con el número de iteraciones.

Búsqueda Secuencial: Este algoritmo compara uno a uno los elementos del arreglo hasta recorrerlo por completo
indicando si el número buscado existe. En éste caso no se ordenará la lista de elementos a diferencia de otros
algoritmos.

Su implementación es la siguiente:
CONTINUACIÓN
EJEMPLO BÚSQUEDA SECUENCIAL

Datos de entrada:

vec: vector en el que se desea buscar el dato

tam: tamaño del vector. Los subíndices válidos van desde 0 hasta tam-1 inclusive. Puede representarse así: vec[0...tam) o vec[0...tam-1].

dato: elemento que se quiere buscar.

Variables

pos: posición actual en el vector

pos = 0

while pos < tam:

if vec[pos] == dato:

Retorne verdadero y/o pos,

else:

pos = pos + 1

Fin (while)

Retorne falso,
CONTINUACIÓN

• Búsqueda Binaria
Este algoritmo permite buscar de una manera más eficiente un dato dentro de un arreglo,
para hacer esto se determina el elemento central del arreglo y se compara con el valor que
se esta buscando, si coincide termina la búsqueda y en caso de no ser así se determina si el
dato es mayor o menor que el elemento central, de esta forma se elimina una mitad del
arreglo junto con el elemento central para repetir el proceso hasta encontrarlo o tener
solo un elemento en el arreglo. Para poder aplicar este algoritmo se requiere que el arreglo
este ordenado.
CONTINUACIÓN
EJEMPLO BÚSQUEDA BINARIA

• def busquedaBinaria(unaLista, item):

• 2 primero = 0

• 3 ultimo = len(unaLista)-1

• 4 encontrado = False

• 5

• 6 while primero<=ultimo and not encontrado:

• 7 puntoMedio = (primero + ultimo)//2

• 8 if unaLista[puntoMedio] == item:

• 9 encontrado = True

• 10 else:

• 11 if item < unaLista[puntoMedio]:

• 12 ultimo = puntoMedio-1

• 13 else:

• 14 primero = puntoMedio+1

• 15

• 16 return encontrado

• 17

• 18 listaPrueba = [0, 1, 2, 8, 13, 17, 19, 32, 42,]

• 19 print(busquedaBinaria(listaPrueba, 3))

• 20 print(busquedaBinaria(listaPrueba, 13))
3.¿QUÉ SON LOS REGISTRÓ Y DAR UN EJEMPLO?

Un registro es una estructura de datos que permite almacenar un conjunto de elementos no necesariamente del mismo tipo.

Vimos que vectores y matrices son estructuras de datos que permiten almacenar un conjunto de datos del mismo tipo.

Un registro normalmente almacena un conjunto de datos que están relacionados entre si.

Ejemplo:

struct producto {

int codigo;

char descripcion[41];

float precio;

}; //obligatorio el punto y coma


4.¿DEFINA QUE ES ESTRUCTURA DINÁMICA Y DAR UN EJEMPLO?

• Una estructura de datos dinámica es aquella en la que el tamaño ocupado en memoria


puede modificarse durante la ejecución del programa. Las variables que se crean y están
disponibles durante la ejecución del programa se llaman variables continuas.
• struct nodo {
• int dato;
• struct nodo *otronodo;
• };
5.¿DEFINA LA ES UNA ESTRUCTURA LINEAL Y LA ESTRUCTURAS NO LINEALES (O ÁRBOLES)
Y DAR EJEMPLO?

La estructura de datos lineal forma una lista lineal. Hay un orden específico en el que los elementos se unen
entre sí en la estructura de datos lineal. Los elementos en la estructura de datos lineal consumen espacio
de memoria lineal y los elementos de datos se almacenan de manera secuencial. En las estructuras de datos
lineales, la memoria de los elementos de datos debe definirse al comienzo del código. La matriz, la pila, la
cola y la lista vinculada son ejemplos de estructura de datos lineal.

La estructura de datos no lineal organiza los datos en un orden ordenado. Existe una relación jerárquica en
la estructura de datos no lineal. Hay raíces, hijos y nodos en la estructura de datos no lineal, hay niveles que
no están disponibles en la estructura de datos lineal. El árbol y el gráfico son uno de los ejemplos más
comunes de estructuras de datos no lineales.

También podría gustarte