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 dePartidoy 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
AcumularVotosAcumula 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) { ... }DameVotosRetorna 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]) { ... }DameGanadorDetermina el nombre del partido con más votos.
char* DameGanador(ListaPartidos *lista) { ... }EscribirListaImprime 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:
- Declara una variable
ListaPartidos. - Solicita al usuario los datos de 5 partidos y los añade a la lista.
- Pide al usuario el nombre de un partido y muestra sus votos.
- 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
PonNombreAñ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) { ... }DameAnteriorDado 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
MasPuntosRetorna el ID de la persona con más puntos.
int MasPuntos(ListaPersonas *lista) { ... }DamePuntosRetorna 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[]) { ... }