Está en la página 1de 6

CUESTIONARIO 1

ESTRUCTURAS DE DATOS
A. Investigue y explique en qué consiste la sucesión de Fibonacci. Incluya el código que representa
esta sucesión usando recursividad en lenguaje C.
R: La serie de Fibonacci o sucesión de Fibonacci, se trata de una serie que esta presente en
diversos procesos naturales, por ejemplo como se distribuyen las ramas de los árboles, árboles
genealógicos de las abejas y el crecimiento de las flores. Esta serie empieza por 2 cifras
independientes entre sí, 0 y 1. Para dar lugar a esta serie se tienen que sumar el ultimo numero
de la serie con el anterior a este, por ejemplo 1+1=2 2+1=3 3+2=5 5+3=8, etc.
En C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int cantidad = 100;
double[] fibo = new double[2];
fibo[0] = 0;
fibo[1] = 1;
int num = 0;
while(num <= cantidad)
{
Console.WriteLine(fibo[0]);
double temp = fibo[1] + fibo[0];
fibo[0] = fibo[1];
fibo[1] = temp;
num++;
}
Console.ReadLine();
}
}
}

Algoritmos y estructuras de datos pág. 1


En C++:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication1

class Program

static void Main(string[] args)

int cantidad = 100;

double[] fibo = new double[2];

fibo[0] = 0;

fibo[1] = 1;

int num = 0;

while(num <= cantidad)

Console.WriteLine(fibo[0]);

double temp = fibo[1] + fibo[0];

fibo[0] = fibo[1];

fibo[1] = temp;

num++;

Console.ReadLine();

Algoritmos y estructuras de datos pág. 2


B. Investigue para qué se utiliza la palabra reservada “typedef” en lenguaje C. Incluya un fragmento
de código donde se ejemplifique su uso.
R: La palabra typedef es utilizada en C comúnmente para que el programador defina sus propios
tipos de datos. Básicamente se trata de una definición de tipos de datos, categorización por
nombres a criterio del programador.

#include <stdio.h>
#include <string.h>

typedef struct Books {


char title[50];
char author[50];
char subject[100];
int book_id;
} Book;

int main( ) {

Book book;

strcpy( book.title, "C Programming");


strcpy( book.author, "Nuha Ali");
strcpy( book.subject, "C Programming Tutorial");
book.book_id = 6495407;

printf( "Book title : %s\n", book.title);


printf( "Book author : %s\n", book.author);
printf( "Book subject : %s\n", book.subject);
printf( "Book book_id : %d\n", book.book_id);

return 0;
}

C. Complete los espacios en azul del siguiente cuadro sinóptico relacionado con los métodos(o
algoritmos) de búsqueda más comunes:

Método de búsqueda Describa en qué consiste Ejemplo de código en C++


donde se utilice el método de
búsqueda

Búsqueda secuencial Se trata de uno de los


algoritmos de búsqueda mas
básicos que existen, pues bien #include<iostream>
este algoritmo de búsqueda #include<conio.h>
permite recorrer un arreglo
desde inicio hasta fin para que using namespace std;
el elemento solicitado pueda
ser buscado y encontrado o en int main(){
su caso que se llegue al final int a[] = {3,2,1,4,5};
de la lectura sin ninguna int i,dato;
coincidencia, indicando ello. char band = 'F';

Algoritmos y estructuras de datos pág. 3


dato = 4;
i=0;
while((band == 'F') &&
(i<5)){
if(a[i] == dato){
band =
'V';
}
i++;
}

if(band == 'F'){
cout<<"El
numero no existe en el
arreglo"<<endl;
}
else if(band == 'V'){
cout<<"El
numero a sido encontrado en la
pos: "<<i-1<<endl;
}

getch();
return 0;
}

Búsqueda Binaria La búsqueda binaria es un //Busqueda Binaria


elemento dentro de un array,
el cual es sumamente #include<iostream>
importante puesto que ayuda #include<conio.h>
al procesamiento de
información y la recuperación using namespace std;
de datos dentro de este. Se
trata de uno de los muchos int main(){
métodos de búsqueda de int numeros[] =
información que existen pero {1,2,3,4,5};
también se trata de uno de los int inf,sup,mitad,dato,i;
mas usados en todo el mundo. char band='F';
Se encuentra diseñado para
diferentes campos del mundo dato = 3;
laboral, y si los datos se
encuentran correctamente
ordenados y catalogados se inf=0;
trata de una herramienta sup=5;
excelente para encontrarlos ya i=0;
que pueden ser recuperados while((inf<=sup)&&(i<5)){
los datos que son solicitados mitad =
en menos de 2 minutos. (inf+sup)/2;

if(numeros[mitad] ==
dato){

band='V';
break;
}

Algoritmos y estructuras de datos pág. 4


if(numeros[mitad]>dato){
sup =
mitad;
mitad =
(inf+sup)/2;
}

if(numeros[mitad]<dato){
inf =
mitad;
mitad =
(inf+sup)/2;
}
i++;
}

if(band == 'V'){
cout<<"El
numero se encontro en la pos:
"<<mitad<<endl;
}
else{
cout<<"El
numero no existe en el arreglo";
}

getch();
return 0;
}

D. Defina qué son las estructuras de datos lineales y qué son las estructuras de datos no lineales
explicando la diferencia entre ambas.
Las estructuras de datos pueden llegar a ser clasificadas como lineales o no lineales de acuerdo con
la relación que guardan entre si los elementos que la conforman. En las estructuras lineales los
elementos tienen una relación 1 a 1, claros ejemplos de este tipos de estructuras de datos son las
listas y las colas de archivos o datos, pues bien estas estructuras se definen puesto que se trata de
la declaración y manipulación de pilas, por lo general son listas lineales las cuales están formadas
por conjuntos de elementos correctamente ordenados y categorizados; no es necesario que siempre
se guarde una cantidad especifica de elementos para que puedan ser considerados lineales solo es
necesario que estén correctamente clasificados y ordenados. Se puede borrar un elemento o insertar
en cualquier posición de la lista y de este modo puede crecer o decrecer con el transcurso del tiempo.

Mientras tanto en las estructuras de datos no lineales se caracterizan por que cada uno de sus
elementos pueden tener varios elementos “siguientes”, lo cual introduce el concepto de estructuras
de ramificación, estas estructuras de datos de ramificación son llamadas grafos y arboles. A su vez
los grafos son un conjunto de puntos y un conjunto de líneas con las cuales se unen puntos entre
puntos, los puntos se llaman nodos de grafo y las líneas se llaman aristas. Un grafo nulo es un grafo
con orden cero, una arista se encuentra determinada por los nodos que esta conecta mientras que
los grafos están completamente definidos por sus conjuntos de nodos y aristas. La posición real de
este elemento en la pagina no tiene importancia. Algunas aristas pueden terminar por conectar un
nodo a si mismo, a estas se les llaman bucles. Un grafo G es llamado grafo simple si las siguientes
condiciones se cumplen:

Algoritmos y estructuras de datos pág. 5


1.- No tiene Ciclos

2.- No hay mas de una arista uniendo un par de nodos

Un grafo que no es simple algunas veces es llamado multígrafo. Un grafo conexo es una grafica que
no se puede dividir en dos graficas sin eliminar por lo menos una de las aristas.

APA

los4estatidinamicos. (2011). Estructura de datos lineales y no lineales. Domingo, 1 de diciembre de


2019, de SlideShare Sitio web: https://es.slideshare.net/los4estatidinamicos/estructura-de-datos-
lineales-y-no-lineales

duncan1890. (2015). Estructuras lineales y no lineales . Domingo, 1 de diciembre de 2019, de


Blogspot Sitio web: https://estructuradedatos10111248.blogspot.com/2015/07/estructuras-
lineales-y-no-lineales.html

Joyss Saldaña Davila. (2017). Búsqueda Binaria en C++. Domingo, 1 de diciembre de 2019, de
DevCode Sitio web: https://devcode.la/tutoriales/busqueda-binaria/

Jesús Manuel Mager Hois. (2015). Búsqueda secuencial en C. Domingo, 1 de diciembre de 2019, de
Eenube Sitio web: http://eenube.com/index.php/ldp/c/28-busqueda-secuencial-en-c-2

CodigoFacilito. (2012). Tutorial C++ 25. Definición de Tipos, Typedef. Domingo, 1 de diciembre de
2019, de Youtube Sitio web: https://www.youtube.com/watch?v=PQIbhit8XL8

Programación ATS. (2016). 54. Programación en C++ || Búsquedas || Búsqueda Binaria en un


arreglo. Domingo, 1 de diciembre de 2019, de Youtube Sitio web:
https://www.youtube.com/watch?v=pxh4QFzDh-Q

Programación ATS. (2016). 53. Programación en C++ || Búsquedas || Búsqueda Secuencial en un


arreglo. Domingo, 1 de diciembre de 2019, de Youtube Sitio web:
https://www.youtube.com/watch?v=_On-0W0-6vQ

Algoritmos y estructuras de datos pág. 6