# data[].attributes.attachment_link.readable_text
#include <stdbool.h>

#ifndef TP0_Repaso
#define TP0_Repaso

// Ejercicio 1

enum Referencia
{
    INTERNO = -1,
    EN_CIRCUNFERENCIA,
    EXTERNO
};

enum Referencia dondeEstaElPunto(int xc, int yc, int rc, int xp, int yp);

// Ejercicio 2

bool digitoEnNumero(long n, short d);


// Ejercicio 3

struct Punto {
    int x, y;
};

enum Referencia dondeEstaElPuntoBis(struct Punto centroC, int rc, struct Punto p);

// Ejercicio 4

#define TAMANO_STRING 50
#define CANT_JUGADORES 11

struct Jugador {
    char nombre[TAMANO_STRING];
    int edad, partidosJugados;
};

struct Jugador *jugadoresOrdenadosPorCantDePartidos(struct Jugador equipo[]);
struct Jugador *jugadoresOrdenadosPorEdad(struct Jugador equipo[]);
float promedioDePartidosJugados(struct Jugador equipo[], int edad);

// Ejercicio 5

#define CANT_PISOS 8
#define CANT_DEPARTAMENTOS 5

typedef struct ViviendaRep {
    short piso;
    char depto;
} Vivienda;


int pisoConMasHabitantes(int edificio[CANT_PISOS][CANT_DEPARTAMENTOS]);
int cantidadDeViviendasVacias(int edificio[CANT_PISOS][CANT_DEPARTAMENTOS]);
float promedioHabitantesPorVivienda(int edificio[CANT_PISOS][CANT_DEPARTAMENTOS]);
Vivienda viviendaConMasHabitantes(int edificio[CANT_PISOS][CANT_DEPARTAMENTOS]);

// Viviendas viviendasVacias(int edificio[CANT_PISOS][CANT_DEPARTAMENTOS]);


#endif //TP0_Repaso

# data[].attributes.attachment_link.readable_text
#ifndef LISTAS_H
#define LISTAS_H

#include <stdbool.h>
#include "D:\Mario\Prog_2_2009\2023\TADs\Tipos\tipo_elemento.h"

struct ListaRep;
typedef struct ListaRep *Lista;

struct IteradorRep;
typedef struct IteradorRep *Iterador;

Lista l_crear();

bool l_es_vacia(Lista lista);

bool l_es_llena(Lista lista);

int l_longitud(Lista lista);

void l_agregar(Lista lista, TipoElemento elemento);

void l_borrar(Lista lista, int clave);

TipoElemento l_buscar(Lista lista, int clave);

void l_insertar(Lista lista, TipoElemento elemento, int pos);

void l_eliminar(Lista lista, int pos);

TipoElemento l_recuperar(Lista lista, int pos);

void l_mostrarLista(Lista lista);

// Funciones de iterador de la lista
Iterador iterador(Lista lista);

bool hay_siguiente(Iterador iterador);

TipoElemento siguiente(Iterador iterador);

#endif // LISTAS_H
