ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Problemas de programación con estructura de datos


Enviado por   •  22 de Mayo de 2019  •  Ensayo  •  307 Palabras (2 Páginas)  •  80 Visitas

Página 1 de 2

Universidad Iberoamericana (UNIBE)

[pic 1]

Nombre & Matricula:

Tahirí Durán 17-1072

José Matos 17-1079

María Montero 18-0738

Materia:

Estructura de Datos

Tema:

Problemas de programación con estructura de datos

Profesor:

Patino

Fecha:

06/04/19

  1. Construir una función que sume los elementos de una lista de enteros recursivamente.

int Suma(Lista L,Posicion inicial,Posicion final)

{

        int n;

    if(inicial!=final){

     Recuperar(&n,inicial,L);

     return n+Suma(L,Siguiente(inicial,L),final);

  }

  else return 0;

}

  1. El recorrido en pre-orden de un determinado árbol binario es: GEAIBMCLDFKJH y en in-orden IABEGLDCFMKHJ .Resolver:
  1. Dibujar el árbol binario.

[pic 2]

  1. Dar el recorrido en post-orden.

El recorrido en post-orden es IBAEDLFCHJKMG

C ) Diseñar una función para dar el recorrido en post-orden dado el recorrido en pre-orden e in-orden y escribir un programa para comprobar el resultado del apartado anterior.

/*Fichero: comprobar.c */
#include < stdio.h>
#include < stdlib.h>
#include < string.h>
char *preorden="GEAIBMCLDFKJH";
char *inorden="IABEGLDCFMKHJ";
char *postorden;
/*---------------------------------------*/
void post(char *pre,char *in,char *pos,int n)
{
int longIzqda;
if(n!=0){
pos[n-1]=pre[0];
longIzqda=strchr(in,pre[0])-in;
post (pre+1,in,pos,longIzqda);
post (pre+1+longIzqda,in+1+longIzqda,pos+longIzqda,n-1-longIzqda);
}
}
/*----------------------------------------*/
int main(int argc,char *argv[])
{
int aux;
aux=strlen(preorden);
postorden=(char *)malloc(aux*sizeof(char));
if (postorden){
printf("El preorden es: %s\n",preorden);
printf("El inorden es: %s\n",inorden);
post(preorden,inorden,postorden,aux);
postorden[aux]='\0';
printf("El postorden calculado es: %s\n",postorden);
free(postorden);
}
else{
fprintf(stderr,"Error: Sin memoria\n");
return 1;
}
return 0;
}

3.Un grafo no dirigido se dice de Euler si existe un camino Euleriano que incluye a todas sus aristas. Construir una función que dado un grafo no dirigido determine si es de Euler.

/*Fichero: euleriano.c */

#include < stdio.h >

#include "grafo.h"

int numComponentesConexas(grafo G);

int grado(vertice v,grafo G);

int euleriano(grafo G)

{

  int es_euleriano=1;

  vertice v;

  if(tipoGrafo(G)==DIRIGIDO)

    error("El grafo debe ser no dirigido");

  if(numComponentesConexas(G)==1)                 /*El grafo es conexo*/

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (187 Kb) docx (354 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com