cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
PRACTICA GENERAL DE ESTRUCTURA DE DATOS – II/2024
DOCENTE PARALELO
Lic. Poly Lazaro Isaac Salazar Larico A (Mañana)
Lic. Adrian Eusebio. Quisbert Vilela B (Tarde)
Lic. Santos Zenon Quispe Apaza C (Noche)
VECTORES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
1. Dado un vector V, sumar todos los elementos primos.
2. Dado un vector V, intercambiar el elemento menor con el mayor
3. Dado un vector V, sumar todos los elementos perfectos
4. En un vector V, generar los n primeros números primos
5. En un vector V, generar la serie de Fibonacci
6. Mediante vectores realizar la replantación de polinomios y realiza la suma y multiplicación
de polinomios
7. Dado dos vectores A, B, intercalar los elementos, si uno de los vectores tiene más datos
que el otro solo debe ser copiado.
8. Dado un vector V, buscar un elemento x por el método de la búsqueda binaria
9. De un vector de N elementos de tipo entero, intercambiar los dos elementos centrales
siempre y cuando el tamaño del vector sea par
10. Dado un vector de números reales, escriba un método que nos devuelva el máximo y el
mínimo de los valores incluidos en el vector.
11. Se tiene almacenado en memoria 2 vectores A y B de tamaño N de elementos cada uno.
Hacer un programa que escriba la palabra “Iguales” si ambos vectores son iguales y
“Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores
se tenga el mismo valor para todos los elementos.
12. En un vector almacenar los datos de productos (id, descripción, marca, cantidad, precio),
realizar las siguientes operaciones:
Adicionar
Eliminar
Modificar
Listar
Buscar por descripción
PILAS
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
1. Dada una pila P, sumar los elementos primos de la pila.
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
2. Dada una Pila P, invertir la pila.
3. Dada una pila P, mostrar el o los elementos centrales de la pila (considerando que el
tamaño de la pila puede ser par o impar).
4. Dada una Pila P, eliminar los elementos repetidos.
o : P(1,2,8,2,3,8,8) → resultado: P(1,2,8,3).
5. Dada una Pila P, ordenar los elementos de la pila.
6. Dada una Pila P, llevar los pares al fondo de la pila y luego los impares.
7. Dada una Pila P ordenada, insertar un elemento X en el lugar que le corresponde.
8. Dada dos Pilas A,B, realizar la intersección de elementos en una Pila C (la intersección
debe ser como en teoría de conjuntos).
9. Dada una Pila P, eliminar el segundo elemento menor de la pila.
10. En una pila almacenar los datos de un libro con los siguientes atributos (id, título, autor,
editorial, precio) y luego realizar las siguientes operaciones:
a) Adicionar.
b) Listar.
c) Buscar un libro por el título.
11. Ingresa una oración, separa cada palabra en una pila, y luego elimina todas las palabras
que tengan una longitud de 3 caracteres. Y contar cuantas palabras palíndromes existe
en la pila
12. Utilizando una pila con números reales que representan las notas de los estudiantes,
reemplaza las notas que sean mayores o iguales a 47 y menores a 51 por una nota de
aprobación de 52., luego separar las notas aprobadas en otra y las reprobadas en otra
pila ambas pilas deben estar ordenados de forma ascendente
COLAS
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
1. Dada una cola lineal C, sumar todos los elementos primos.
2. Dada una cola lineal C, separar en dos colas A y B, donde la cola A tendrá los elementos
pares y en la cola B los impares.
3. Dada una cola lineal C, intercambiar el elemento mayor con el elemento menor de la cola.
4. Dada dos colas A y B, sumar los elementos de ambas colas en una tercera cola C (nota:
las colas A y B deben ser del mismo tamaño).
5. Dada una cola lineal C, invertir los elementos de la cola.
6. Dada una cola lineal C, ordenar sus elementos de forma ascendente o descendente.
7. Dada una cola lineal C ordenada, inserta un elemento X en la posición que le
corresponde.
8. Dada una cola lineal C, eliminar todos los elementos que se repiten.
9. En una cola lineal generar la siguiente serie: s = 0,1,1,2,4,7,13,24,44.
10. Dada una cadena de texto, utiliza una cola para eliminar todas las vocales. Los caracteres
restantes deben almacenarse en la cola y mostrarse al final.
L: "Estructura de Datos" → L: "Strctr d Dts".
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
11. Escribe un programa que lea una cadena de texto y cuente la frecuencia de cada carácter
utilizando una cola. El programa debe encolar cada carácter y luego contar cuántas veces
aparece.
L: "programación" → L: p:1, r:2, o:2, g:1, a:2, m:1, i:1, c:1, ó:1, n:1.
12. Dadas dos cadenas de igual longitud, utiliza una cola para intercalar sus caracteres. La
cola debe almacenar un carácter de la primera cadena seguido de un carácter de la
segunda, y así sucesivamente.
L: "ABC", "123" → L: "A1B2C3".
COLAS CIRCULARES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
1. Dada una cola circular CC, ordenar sus elementos.
2. Dada una cola circular CC, invertir los elementos de la cola.
3. Dada una cola circular CC, insertar un elemento X de forma ordenada, donde la cola CC
debe estar ordenada.
4. Dada una cola circular CC, sumar todos los elementos que sean primos y perfectos.
5. Dada una cola circular CC, realizar la unión y la intersección de elementos de la cola.
6. Mediante una cola circular, administrar los datos de un libro (id, título, autor, precio) y
realizar las operaciones de adición, eliminación por código, listado de todos los libros y
búsqueda por el título del libro.
7. Dada una cola circular CC, eliminar todos los elementos múltiplos de X.
8. Dada una cola circular CC, eliminar todos los elementos repetidos de la cola.
9. Dada una cola circular CC de caracteres, eliminar todos los caracteres que sean vocales.
a. : CC("a", "b", "e", "f", "i") → L: CC("b", "f").
10. Dada una cola circular CC de caracteres, ordenar los caracteres alfabéticamente.
a. : CC("z", "a", "m", "k") → L: CC("a", "k", "m", "z").
11. Dada una cola circular CC de caracteres, intercambiar las letras mayúsculas con
minúsculas y viceversa.
a. : CC("a", "B", "c", "D") → L: CC("A", "b", "C", "d").
12. Mediante colas circulares calcular la desviación estándar.
LISTAS SIMPLES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python.
1. Dada una lista simple, obtener la desviación estándar.
2. Dada una lista simple, ordenar sus elementos de forma ascendente o descendente.
3. Dada una lista simple, insertar un elemento X después del segundo nodo.
4. Dada una lista simple, intercambiar el elemento menor y mayor de la lista.
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
5. Dada una lista simple, eliminar todos los elementos repetidos.
6. Mediante listas simples, sumar dos polinomio P(x),, multiplicar dos polinomio P(x).
7. Dada una lista simple, realizar la rotación r veces.
8. Dada una lista simple, separar en dos listas de aprobados y reprobados.
9. En una lista simple generar la siguiente serie s= 4,7,10,13,16,19, …
10. Dada una lista de caracteres eliminar todas las vocales de la lista
L=( e , p , l ,a, u, t ) L=(p,l,t)
11. 11.Dada una lista simple de cadenas, intercambia las cadenas en las posiciones i y j.
: L: ['hola', 'oso', 'lima', 'ana']
i = 1, j = 3
L: ['lima', 'oso', 'hola', 'ana']
12. Dada una lista simple de cadenas, concatena todas las cadenas en una sola
L: ['lima', 'oso', 'hola', 'ana']
Cadena = “lima oso hola ana”
LISTAS CIRCULARES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
1. Dada una lista circular simple, insertar un elemento X después de cada elemento par.
L= [2, 3, 4, 5], X = 10
L= [2, 10, 3, 4, 10, 5]
2. Dada una lista circular simple, ordenar los elementos de la lista.
L: [4, 1, 3, 2]
L [1, 2, 3, 4]
3. Dada una lista circular simple ordenada, insertar un elemento X en el lugar que le
corresponde.
L: [1, 3, 5, 7], X = 4
L: [1, 3, 4, 5, 7]
4. Dada una lista circular simple, separar en dos listas A y B, los elementos primos en A y el
resto en la lista B.
L: [2, 4, 5, 6, 7, 8]
A = [2, 5, 7], B = [4, 6, 8]
5. Dada dos listas circulares simples, realizar la suma de sus elementos.
A = [1, 2, 3],
B = [4, 5, 6]
C = [5, 7, 9]
6. Dada una lista circular simple, calcular la media aritmética.
L: [2, 4, 6, 8]
M: 5.0
7. Dada una lista circular simple, obtener el tamaño de la lista.
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
L: [10, 20, 30]
Tam: 3
8. Dada una lista circular simple, intercambiar el elemento mayor con el menor.
L=[3, 1, 4, 2]
L=[4, 1, 3, 2]
9. Dada una lista circular simple, eliminar los elementos repetidos de la lista.
L= [1, 2, 2, 3, 4, 4, 5]
L [1, 2, 3, 4, 5]
10. En una lista circular generar la siguiente serie: s = 4, 7, 10, 13, 16, 19, …
L: [4, 7, 10, 13, 16, 19]
11. Invertir Cada Cadena en una Lista
L=['hola', 'mundo', 'python']
L=['aloh', 'odnum', 'nohtyp']
12. Eliminar Cadenas que Contengan un Substring Específico
L: ['apple', 'banana', 'cherry', 'mundo']
subcadena = 'an'
L: ['apple', 'cherry', 'date',’mundo’]
LISTAS DOBLES NORMALES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python.
1. Dada una lista doble normal, intercambiar el primer par con el último elemento de la lista.
L: [1, 2, 3, 4, 5]
L: [5, 2, 3, 4, 1]
2. Dada una lista doble normal, llevar el primer nodo al final de la lista.
L: [1, 2, 3, 4, 5]
L: [2, 3, 4, 5, 1]
3. Dada una lista doble normal, eliminar los elementos repetidos de la lista.
L: [1, 2, 2, 3, 4, 4, 5]
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
L: [1, 2, 3, 4, 5]
4. Dada dos listas dobles normales, realizar la unión de ambas listas en una tercera lista, sin
elementos repetidos.
L: A = [1, 2, 3], B = [3, 4, 5]
L: [1, 2, 3, 4, 5]
5. Dada dos listas dobles normales, realizar una mezcla de ambas listas.
L: A = [1, 2, 3], B = [4, 5, 6]
L: [1, 4, 2, 5, 3, 6]
6. Dada una lista doble normal, eliminar el nodo k-ésimo de la lista.
L: [10, 20, 30, 40, 50], k = 3
L: [10, 20, 30, 50]
7. Dada una lista doble normal, calcular la mediana.
L: [1, 2, 3, 4, 5]
L: 3
8. Dada una lista doble normal, insertar un elemento X antes del primer elemento par.
L: [1, 3, 5, 4, 7], X = 10
L: [1, 3, 10, 5, 4, 7]
9. Dada una lista doble que almacena letras en cada nodo, eliminar todas las vocales de la lista
doble.
L: ['a', 'b', 'c', 'e', 'i', 'o', 'u']
L: ['b', 'c']
10. Dada dos listas dobles normales, realizar la intersección de elementos en una lista C, sin
elementos repetidos.
L: A = [1, 2, 3, 4], B = [3, 4, 5, 6]
L: [3, 4]
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
11. Dada una lista doble, dividirla en dos listas a partir del nodo k-ésimo, donde k es dado por el
usuario.
L: [1, 2, 3, 4, 5], k = 3
L: A = [1, 2, 3], B = [4, 5]
12. Dada una lista doble normal, mostrar todos los elementos que son puntos silla. Un elemento
V(i) es un punto silla si se cumple que V(i-1) < V(i) < V(i+1).
L: [1, 3, 2, 4, 5]
L: [3]
LISTAS CIRCULARES DOBLES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
11. Dada una lista doble circular, eliminar los elementos repetidos de la lista.
L: [1, 2, 2, 3, 4, 4, 5]
L: [1, 2, 3, 4, 5]
12. Dada una lista doble circular, insertar un elemento X después de cada elemento Y, si existe.
L: [1, 2, 3, 4], X = 10, Y = 2
L: [1, 2, 10, 3, 4]
13. Dada una lista doble circular, ordenar sus elementos.
L: [3, 1, 4, 5, 2]
L: [1, 2, 3, 4, 5]
14. Dada una lista doble circular, eliminar todos los números que se repiten.
L: [1, 2, 2, 3, 3, 4]
L: [1, 4]
15. Dada una lista doble circular donde se almacena elementos de tipo String (cadenas), contar
cuántos elementos son palíndromos.
L: ["oso", "hola", "oruro", "ana"]
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
L: 2 (oso, oruro, ana)
16. En una lista doble circular, almacenar los datos de un estudiante (ci, nombre, paterno,
materno, nota) y realizar las siguientes operaciones:
Adicionar estudiantes
Eliminar un estudiante X por el CI
Listar todos los estudiantes
Hallar el promedio de notas de todos los estudiantes
Buscar un estudiante por el apellido paterno.
17. En una lista doble circular, almacenar datos de un producto (cod, descripción, marca,
cantidad, precio) y realizar las siguientes operaciones:
Adicionar productos
Eliminar un producto X
Buscar un producto X por código
Llevar a otra lista simple los productos cuya cantidad sea igual a 0
Listar todos los productos
18. Dada una lista doble circular, dividir en dos listas a partir del nodo k-ésimo, donde k es
dado por el usuario.
L: [1, 2, 3, 4, 5], k = 3
L: A = [1, 2, 3], B = [4, 5]
19. Dada una lista doble circular, calcular la varianza.
L: [1, 2, 3, 4, 5]
L: 2.5
20. Dada una lista doble circular, calcular la media aritmética de los pares e impares por
separado.
L: [1, 2, 3, 4, 5]
L: Media pares = 3, Media impares = 3
21. Dada una lista doble circular, invertir cada elemento de la lista (donde el elemento es una
cadena de caracteres).
L: ["abc", "def", "ghi"]
L: ["cba", "fed", "ihg"]
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
22. Dada una lista doble circular, contar cuántos elementos son múltiplos de X.
L: [2, 4, 6, 8, 10], X = 2
L: 5
RECURSIVIDAD
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python
1. Verificar si una palabra es un palíndromo.
Ejemplo:
Datos: "radar"
Res: True
2. Convertir un número de base 10 a base 2.
Ejemplo:
Datos: 10
Res: "1010"
3. Invertir un número entero.
Ejemplo:
Datos: 12345
Res: 54321
4. Calcular el MCM (Mínimo Común Múltiplo) de 2 números enteros.
Ejemplo:
Datos: 4, 5
Res: 20
5. Calcular el MCD (Máximo Común Divisor) de 2 números enteros.
Ejemplo:
Datos: 12, 15
Res: 3
6. Invertir una cadena.
Ejemplo:
Datos: "hola"
Res: "aloh"
7. Encontrar el logaritmo entero de un número N en base X.
Ejemplo:
Datos: 100, 10
Res: (log10(100) = 2)
8. Sumar los dígitos de un número entero.
Ejemplo:
Datos: 1234
Res: 10 (1+2+3+4)
9. Calcular el producto de dos números enteros.
Ejemplo:
Datos: 6, 7
Res: 42
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
10. Realizar una función para sumar los números desde el 0 hasta n.
Ejemplo:
Datos: 5
Res: (0+1+2+3+4+5) = 15
11. Contar el número de vocales en una cadena.
Ejemplo:
Datos: "programacion"
Res: (o, a, i) = 3
12. Crea un método que obtenga el factorial de un número N. Se debe pasar como parámetro
el número N
ARBOLES
En cada ejercicio debe realizar el TDA y la su respectiva codificación en lenguaje Python.
1. Buscar un elemento en un árbol binario
2. Insertar un elemento x en árbol binario de forma iterativa
3. Verificar si dos árboles son iguales
4. Contar cuantos nodos hoja tiene un árbol binario
5. Sumar los elementos primos de un árbol binario
6. Calcular la altura de un árbol
7. Encontrar el elemento menor de un árbol
8. Realizar la operación de eliminación de un nodo en un árbol de búsqueda binaria.
9. Dado un Árbol Binario, buscar un elemento en el árbol
10. Dado un Árbol Binario, eliminar un nodo incluyendo sus hijos
11. Mediante un árbol binario de búsqueda, almacenar N números aleatorios y desplegar el
árbol con recorrido en anchura. N es dado por el usuario
12. Las votaciones de diferentes partidos son almacenados en un árbol binario de búsqueda,
decir cuál fue el número de votaciones mayor y cuál fue el menor
cx
Universidad publica de el alto
UNIVERSIDAD
CarreraPÚBLICA DE EL ALTO
de ingenieria de sistemas
CARRERA INGENIERÍA DE SISTEMAS
INSTRUCCIONES
a. Todos los estudiantes deberán resolver todo los ejercicios
b. La fecha límite para la entrega de la practica será el día del examen hasta horas
23:59 (medianoche), pasada a esta fecha no se aceptará más las practicas a la
plataforma.
c. Cada ejercicio solo debe poner el código en Python y la captura de pantalla de la
ejecución del programa.
DE HOJA DE PRESENTACION DE LA PRACTICA
Nota. En una hoja puede ser resuelto más de 1 pregunta
UNIVERSIDAD PUBLICA DE EL ALTO
CARRERA DE INGENIERIA DE SISTEMAS
Practica Nro. 1
Apellidos y Nombres: …………………………………………………………..
Fecha de Presentación: …/…/……
Paralelo : …….
1. Pregunta.
CODIGO EJECUCION