Академический Документы
Профессиональный Документы
Культура Документы
Estructuras
de Datos en
Sistemas
Introducción
Un algoritmo es una secuencia finita de operaciones, organizadas
para realizar una tarea determinada. Las estructuras de datos son
la forma en que se organizan los datos para ser usados. Puede ser
una colección de variables, posiblemente de diferentes tipos de
datos, conectadas de un modo determinado.
Tipos de ordenamiento:
Insertar Buscar
Operaciones
Básicas de
una lista
Vaciar Recorrer
Tamaño
Importancia de la estructura de datos
struct E_Alumno{
char* nombre;
char* apellido;
float nota1;
float nota2;
};
typedef E_Alumno* alumno;
alumno crear_alumno(){
alumno x=new E_Alumno;
x->nombre=new char[50];
x->apellido=new char[50];
return x;
}
void liberar_alumno(alumno x){
delete[] x->nombre;
delete[] x->apellido;
delete[] x;
}
cin>>x->nota1;
while(x->nota1<0){
Bloque 1
cout<<"No es valido, ingrese la nota del estudiante";
cin>>x->nota1;
}
x->nota1 = 0;
x->nota2 = 0;
}
return x;
}
void imprimir_alumno(alumno x){
cout<<"\nInformacion del alumno\n";
cout<<"-------------------------\n";
cout<<"Nombre: \t"<<x->nombre;
cout<<"\nApellido: \t\t"<<x->apellido;
cout<<"\nNota de Programacion: \t"<<x->nota1<<"\n\n";
cout<<"\nNota de Estructura de Datos: \t"<<x->nota2<<"\n\n";
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if((c[j]->apellido)[0]<(c[i]->apellido)[0]){
aux=c[i];
c[i]=c[j];
c[j]=aux;
}
}
}
return c;
}
default:
cout<<"\n Opcion invalida."<<endl;
int main(){
int n=0;
cout<<"Cantidad de alumnos que desea ingresar: \n";
cin>>n;
alumno* conjunto=new alumno[n];
conjunto=leer_conjunto_alumnos(conjunto,n);
cout<<"\n___________________________________\n";
system ("cls");
cout<<"\nALUMNOS INGRESADOS POR EL USUARIO\n";
cout<<"___________________________________\n\n";
imprimir_conjunto_alumnos(conjunto,n);
int y;
printf ("\nSeleccione un metodo de orden.\n\n");
printf ("\n1.-Ordenar por Nota de Programacion II.\n");
printf ("2.-Ordenar por Nota de Estructuras de Datos.\n");
scanf ("%d", &y);
if(y == 1){
system ("cls");
cout<<"\nALUMNOS INGRESADOS POR EL USUARIO\n";
cout<<"___________________________________\n\n";
imprimir_conjunto_alumnos(conjunto,n);
conjunto=ordenar_por_nota1(conjunto,n);
cout<<"\n___________________________________\n";
cout<<"\nALUMNOS ORDENADOS POR NOTA DE PROGRAMACION\n";
cout<<"___________________________________\n\n";
imprimir_conjunto_alumnos(conjunto,n);
}
else if (y == 2){
system ("cls");
cout<<"\nALUMNOS INGRESADOS POR EL USUARIO\n";
cout<<"___________________________________\n\n";
imprimir_conjunto_alumnos(conjunto,n);
conjunto=ordenar_por_nota2(conjunto,n);
cout<<"\n___________________________________\n";
cout<<"\nALUMNOS ORDENADOS POR NOTA DE ESTRUCTURA DE DATOS\n";
cout<<"___________________________________\n\n";
imprimir_conjunto_alumnos(conjunto,n);
else{
ordenar(conjunto,n,o);
cout<<"\n";
cout<<"Presione 1 o 2 si quiere el ordenamiento por nombre o"<<endl<<"apellido
respectivamente, 3 para salir."<<endl;
cin>>o;
}
system("pause");
}
2) El aeropuerto internacional de El Salvador, desea controlar el
flujo de pasajeros, y de aerolíneas que circulan por él. Diseñe un
programa que de soporte a las salidas y entradas de los aviones,
mediante una lista simple cuya información sería la siguiente:
Destino, compañía, hora de salida y pasajeros. Luego, y a partir
de ese último dato, es que se eliminarán los datos de la lista de
pasajeros.
avion crear_avion(){
avion x=new E_Avion;
x->destino=new char[50];
x->compania=new char[50];
return x;
}
void liberar_avion(avion x){
delete[] x->destino;
delete[] x->compania;
delete[] x;
}
avion leer_avion(avion x){
cout<<"Destino: ";
cin.getline(x->destino,50);
while(strlen(x->destino)==0){
cin.getline(x->destino,50);
}
cout<<"\nCompania: ";
cin.getline(x->compania,50);
while(strlen(x->compania)==0){
cin.getline(x->compania,50);
}
system ("cls");
cout<<"Nota Importante: Debe colocar HORAS seguido de : para luego colocar
MINUTOS. \n\nEjemplo: 09:30\n\n";
cout<<"\nHora de salida:";
cout<<"\nPasajeros:";
cin>>x->pasajeros;
while(x->pasajeros<0){
cout<<"No es valido, ingrese una hora correcta.\n\n";
cin>>x->pasajeros;
return x;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if((c[j]->compania)[0]<(c[i]->compania)[0]){
aux=c[i];
c[i]=c[j];
c[j]=aux;
}
}
}
return c;
}
default:
cout<<"\n Opcion invalida."<<endl;
}
}
int n=0;
cout<<"Cantidad de vuelos que desea ingresar: \n";
cin>>n;
avion* conjunto=new avion[n];
conjunto=leer_conjunto_aviones(conjunto,n);
cout<<"\n___________________________________\n";
int y;
printf ("\nSeleccione un metodo de orden.\n\n");
printf ("\n1.-Ordenar por Hora de salida.\n");
printf ("2.-Ordenar por cantidad de Pasajeros.\n");
scanf ("%d", &y);
if(y == 1){
imprimir_conjunto_aviones(conjunto,n);
}
else if (y == 2){
imprimir_conjunto_aviones(conjunto,n);
else{
ordenar(conjunto,n,o);
cout<<"\n";
cout<<"Presione 1 o 2 si quiere el ordenamiento por destino o"<<endl<<"compania
respectivamente, 3 para salir."<<endl;
cin>>o;
}
system("pause");
}
2) Una biblioteca, desea tener un registro de los libros que en ella
se encuentran, se sabe que existe un número no mayor a 100
libros, y que los datos que se necesitan registrar son: el nombre
del autor, el título del libro y las existencias del mismo. , Dichos
datos, se deben guardar en una Lista lineal.
#include<iostream>
#include <string.h>
#include <cstdlib>
using namespace std;
int strcmp(const char[], const char[]);
struct E_Libro{
char* titulo;
char* autor;
};
typedef E_Libro* libro;
libro crear_libro(){
libro x=new E_Libro;
x->titulo=new char[100];
x->autor=new char[100];
return x;
}
void liberar_libro(libro x){
delete[] x->titulo;
delete[] x->autor;
delete[] x;
}
return x;
}
void imprimir_libro(libro x){
cout<<"\nInformacion del libro\n";
cout<<"-------------------------\n";
cout<<"Titulo:\t"<<x->titulo;
cout<<"\nAutor: \t\t"<<x->autor;
}
libro* leer_conjunto_libros(libro* c, int n){
for(int i=0;i<n;i++){
system ("cls");
cout<<"Libro "<<i+1<<":\n\n";
libro a=crear_libro();
a=leer_libro(a);
c[i]=a;
}
return c;
}
}
}
libro* ordenar_por_autor(libro* c, int n){
libro aux;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if((c[j]->autor)[0]<(c[i]->autor)[0]){
aux=c[i];
c[i]=c[j];
c[j]=aux;
}
}
}
return c;
}
libro* ordenar_por_titulo(libro* c, int n){
libro aux;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if((c[j]->titulo)[0]<(c[i]->titulo)[0]){
aux=c[i];
c[i]=c[j];
c[j]=aux;
}
}
}
return c;
}
cout<<"___________________________________\n\n";
cout<<"\nLIBROS ORDENADOS POR TITULO\n";
cout<<"___________________________________\n\n";
c=ordenar_por_titulo(c,n);
imprimir_conjunto_libros(c,n);
break;
case 2:
system ("cls");
cout<<"___________________________________\n\n";
cout<<"\nLIBROS ORDENADOS POR AUTOR\n";
cout<<"___________________________________\n\n";
c=ordenar_por_autor(c,n);
imprimir_conjunto_libros(c,n);
break;
default:
cout<<"\n Opcion invalida."<<endl;
}
int main(){
int n=0;
cout<<"Cantidad de libros que desea ingresar: \n";
cin>>n;
libro* conjunto=new libro[n];
conjunto=leer_conjunto_libros(conjunto,n);
cout<<"\n___________________________________\n";
system ("cls");
cout<<"\nLIBROS INGRESADOS POR EL USUARIO\n";
cout<<"___________________________________\n\n";
imprimir_conjunto_libros(conjunto,n);
cout<<"\n";
cout<<"\n";
cout<<"\n";
cout<<"Presione 1 o 2 si quiere el ordenamiento por titulo o"<<endl<<"autor
respectivamente, 3 para salir."<<endl;
int o;
cin>>o;
if (o == 3){
system ("cls");
printf ("Gracias por usar este sistema !! \n\n");
return 0;
}
while(0<=o<3){
if (o == 3){
system ("cls");
printf ("Gracias por usar este sistema !! \n\n");
return 0;
}
ordenar(conjunto,n,o);
cout<<"\n";
cout<<"Presione 1 o 2 si quiere el ordenamiento por titulo o"<<endl<<"autor
respectivamente, 3 para salir."<<endl;
cin>>o;
}
system("pause");
}
Conclusión
Los tipos de estructuras de datos que se usan en la
programación también son similares a los que encuentras en tu día
a día. Por ejemplo, las camisetas de tu armario probablemente
estén una encima de la otra. En cada lenguaje de programación
podemos usar diferentes estructuras de datos y diferentes
implementaciones de las más básicas, como las listas, colas, pilas,
que suelen estar presentes en la mayoría de los lenguajes. Si
entendemos el concepto, importa poco la sintaxis, porque la
podremos realizar nosotros mismos en términos de código o la
encontraremos en diversas fuentes como libros o tutoriales.