LAIT301 - U2 - EA - Gaspar - David
LAIT301 - U2 - EA - Gaspar - David
LAIT301 - U2 - EA - Gaspar - David
“ROSARIO CASTELLANOS”
Actividad de Aprendizaje:
Matricula:22201584-2
Asesor: Valeria Fernanda Abarca Landero
Asignatura: Estructura de Datos
Grupo: G305
Primer momento
Elije entre las alternativas de implementar estructura de datos tipo lista,
ListaSolicitudes que te permita almacenar todas las peticiones basadas en una
lista simple o una lista doble y explica por qué elegiste esa implementación
(justifícalo)
La lista que vamos a utilizar para esta actividad será una lista simple. Este tipo de
lista es ideal para la inserción de los datos ya que solo será por un solo lado, es
decir no será necesario ir ocupar una lista doble ya que no introduciríamos
elementos por detrás o realizaríamos recorridos de los elementos.
Segundo momento
Crea una clase o función para gestionar las peticiones de viaje ComparteVehiculo
y una clase o función para almacenar todas las peticiones ListaSolicitudes
utilizado el lenguaje de programación y el software de tu preferencia (Si tienes
dudas consultada la información con tu docente)
La clase o función ComparteVehiculo debe implementar/realizar los siguiente
métodos u operaciones:
a) fusionaSolicitudes que recibe como parámetros dos objetos/datos del tipo
ListaSolicitudes.
La función o método debe devolver un objeto del tipo ListaSolicitudes cuyo
contenido sean los elementos de ambas listas de entrada de forma alternada, es
decir en el mismo orden, pero integrando un elemento de cada lista.
Veamos un ejemplo con letras:
Lista 1: {A,C,D,E,F,G}
Lista 2: {B,J}
Resultado de fusionaSolicitudes: {A,B,C,J,D,E,F,G}
#include<string.h>
#define true 1
#define false 0
char origen[20];
char destino[20];
char id[20];
}Solicitud;
typedef struct{
Solicitud S[1000];
int ultimo;
}Lista;
int main(){
Lista A,B,C;
Solicitud aux;
int opc,retorno;
inicializa(A);
inicializa(B);
inicializa(C);
do{
cin>>opc;
fflush(stdin);
if(opc==1||opc==2||opc==3){
if(opc==3){
cout<<"\nIngresa Origen:";
cin>>aux.origen;
cout<<"\nIngresa Destino:";
cin>>aux.destino;
if(opc!=3){
cout<<"\nIngresa ID:";
cin>>aux.id;
else{
strcpy(aux.id,"NULL");
switch(opc){
case 1:
insertar(&A,aux);
cout<<"\nLISTA A:";
imprimir(A);
break;
case 2:
insertar(&B,aux);
cout<<"\nLISTA B:";
imprimir(B);
break;
case 3:
inicializa(C);
compartir(A,B,&C,aux);
break;
case 4:
anular(A);
break;
case 5:
anular(B);
break;
case 6:
cout<<"\nLISTA A:";
imprimir(A);
cout<<"\nLISTA B:";
imprimir(B);
cout<<"\nLISTA C:";
imprimir(C);
break;
default:
if(opc==0){
else{
break;
}while(opc);
return 0;
l.ultimo = -1;
int i;
if(l->ultimo==-1){
l->ultimo = 0;
strcpy(l->S[l->ultimo].destino,S.destino);
strcpy(l->S[l->ultimo].origen,S.origen);
strcpy(l->S[l->ultimo].id,S.id);
l->ultimo++;
cout<<"\n\tSe inserto:"<<S.id<<endl;
int i = 0;
if(l.ultimo==-1){
cout<<"\n\tLista vacia."<<endl;
return;
while(i<l.ultimo){
cout<<"\n"<<"ID:"<<l.S[i].id<<" O:"<<l.S[i].origen<<" D:"<<l.S[i].destino<<"\n"<<endl;
i=i+1;
if(l.ultimo = -1){
else{
int i=0,j=0,turno=1,turnos,t=0;
while(t<turnos){
if(strcmp(A.S[i].origen,S.origen)==0&&strcmp(A.S[i].destino,S.destino)==0){
insertar(C,A.S[i]);
turno = 2;
i++;
if(strcmp(B.S[j].origen,S.origen)==0&&strcmp(B.S[j].destino,S.destino)==0){
insertar(C,B.S[j]);
turno = 1;
j++;
t++;
if(i==A.ultimo&&j<B.ultimo){
turno=2;
if(j==B.ultimo&&i<A.ultimo){
turno=1;
Referencias:
Universidad Rosario Castellanos. (s/f). Estructura de datos Unidad 1: Estructura de datos.
edu.rcastellanos.cdmx.gob.mx. Recuperado de
https://edu.rcastellanos.cdmx.gob.mx/lad_A1/course/view.php?id=348