Ejercicios Resueltos de Estructuras de Datos en C: Partidos Políticos, Listas y Personas

Clasificado en Informática

Escrito el en español con un tamaño de 4,61 KB

Ejercicio C1: Gestión de Votos de Partidos Políticos

Este ejercicio en C implementa una estructura de datos para gestionar los votos de partidos políticos. Se definen estructuras para representar un partido y una lista de partidos, junto con funciones para acumular votos, consultar votos y determinar el partido ganador.

Estructuras de Datos

Se definen dos estructuras:

  • Partido: Representa un partido político con su nombre y número de votos.
  • ListaPartidos: Representa una lista de partidos, almacenando un array de Partido y el número total de partidos en la lista.
#include 
#include 
#include 
#include 

typedef struct {
    char nombre[20];
    int votos;
} Partido;

typedef struct {
    Partido partidos[100];
    int num;
} ListaPartidos;

Funciones

  • AcumularVotos

    Acumula los votos de un partido. Si el partido ya existe en la lista, incrementa sus votos; de lo contrario, lo añade a la lista.

    void AcumularVotos(ListaPartidos *lista, char nombre[20], int votos) { ... }
  • DameVotos

    Retorna el número de votos de un partido dado su nombre. Retorna -1 si el partido no se encuentra en la lista.

    int DameVotos(ListaPartidos *lista, char nombre[20]) { ... }
  • DameGanador

    Determina el nombre del partido con más votos.

    char* DameGanador(ListaPartidos *lista) { ... }
  • EscribirLista

    Imprime en consola la lista de partidos con sus respectivos votos.

    void EscribirLista(ListaPartidos *lista) { ... }

Función main

La función main demuestra el uso de las estructuras y funciones definidas:

  1. Declara una variable ListaPartidos.
  2. Solicita al usuario los datos de 5 partidos y los añade a la lista.
  3. Pide al usuario el nombre de un partido y muestra sus votos.
  4. Muestra el nombre del partido ganador.
int main(int argc, char *argv[]) { ... }

Ejercicio C2: Gestión de Lista de Nombres

Este ejercicio implementa una lista de nombres y funciones para añadir nombres y obtener el nombre anterior a uno dado.

Estructura de Datos

Se define la estructura Tlista para almacenar una lista de nombres:

typedef char Nombre[20];

typedef struct {
    int num;  // Número de usuarios en la lista
    Nombre usuarios[100];
} Tlista;

Funciones

  • PonNombre

    Añade un nombre al final de la lista. Retorna 0 si la operación es exitosa, o -1 si la lista está llena.

    int PonNombre(Tlista *l, Nombre usuario) { ... }
  • DameAnterior

    Dado un nombre, retorna el nombre anterior en la lista. Si el nombre no está en la lista, retorna "No está". Si es el primero, retorna "Es el primero".

    char *DameAnterior(Tlista *l, Nombre usuario) { ... }

Función main

La función principal crea una lista, añade 5 nombres, solicita un nombre y muestra el nombre anterior.

int main(int argc, char *argv[]) { ... }

Ejercicio C6: Gestión de Lista de Personas

Este ejercicio define una estructura para representar una persona (con ID, nombre y puntos) y una lista de personas. Incluye funciones para encontrar a la persona con más puntos y obtener los puntos de una persona dado su nombre.

Estructuras de Datos

typedef struct {
    int id;
    char nombre[20];
    int puntos;
} Persona;

typedef struct {
    Persona personas[100];
    int num;
} ListaPersonas;

Funciones

  • MasPuntos

    Retorna el ID de la persona con más puntos.

    int MasPuntos(ListaPersonas *lista) { ... }
  • DamePuntos

    Retorna los puntos de una persona dado su nombre. Retorna -1 si la persona no se encuentra en la lista.

    int DamePuntos(ListaPersonas *lista, char nombre[20]) { ... }

Función main

La función main:

  • Declara una ListaPersonas.
  • Obtiene y muestra el ID de la persona con más puntos.
  • Solicita un nombre y muestra los puntos de esa persona (si existe).
int main(int argc, char *argv[]) { ... }

Entradas relacionadas: