Autor
|
Tema: Lista encadenada (Leído 2,858 veces)
|
pudge123
Desconectado
Mensajes: 3
|
Buenas Tardes podrían ayudarme a solucionar una tarea.
1) Desarrollar un programa, para crear una lista encadenada con los datos de los alumnos de la clase de computación con forma de estructura: nombre,edad y sexo. Los datos se van introduciendo conforme van llegando los alumnos a la clase, después el maestro quiere acomodar a los alumnos en su clase de tal forma que los primeros alumnos sean del sexo femenino y luego los del sexo masculino.mostrar en la pantalla la lista inicial de los alumnos y la lista ya acomodados.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
No me aburro de decirlo. No se hacen tareas.
Si quieres que te haga la tarea, en serio, mándame un mp y negociamos un precio... pero nadie te va a hacer la tarea del "cole" de forma gratuita.
Este foro está para ayudar cuando te atascas... para aprender y consultar dudas... no para librarte de hacer deberes.
Ponte con el programa y, cuando te atasques en alguna función, vuelves y comentas tus problemas... pero el problema desde luego no puede ser el típico "pueden ayudarme a hacer esta tarea?" o "necesito que alguien que haga esta practica" o similares...
Un saludo.
|
|
|
En línea
|
|
|
|
pudge123
Desconectado
Mensajes: 3
|
Solo me hace falta la funcion de Listar ordenadamente no necesito todo el codigo, me explique mal. #include <iostream> #include <stdlib.h> #include <string.h>
using namespace std;
struct alumnos { char nombre[20]; int edad; char sexo[10]; }; struct Nodo { alumnos info; Nodo *siguiente; };
Nodo *cabeza, *ptr_actual;
void insertar(){ Nodo *nuevo; if(cabeza == NULL){ cabeza = new Nodo; cout << "Dame Nombre del Alumno ? "; cin >> cabeza -> info.nombre; cout << "Dame Edad del Alumno ? "; cin >> cabeza -> info.edad; cout << "Dame Sexo del Alumno? "; cin >> cabeza -> info.sexo; cabeza -> siguiente = NULL; ptr_actual = cabeza; }else{ nuevo = new Nodo; cout << "Dame Nombre del Alumno ? "; cin >> nuevo -> info.nombre; cout << "Dame Edad del Alumno ? "; cin >> nuevo -> info.edad; cout << "Dame Sexo del Alumno? "; cin >> nuevo -> info.sexo; nuevo -> siguiente = NULL; ptr_actual -> siguiente = nuevo; ptr_actual = nuevo; } }
void listar(){ Nodo *p; p = cabeza; while(p != NULL){ cout << p-> info.nombre << " " << p -> info.edad << " "<< p-> info.sexo<< endl; p = p -> siguiente; } }
int main() { int opc; do{ cout << " Menu Clase de Alumnos" << endl; cout << " 1. Insertar " << endl; cout << " 2. Listar " << endl; cout << " 3. Listar Ordenados " << endl; cout << " 4. Salir " << endl; cout << " Digite su Opcion ==> " ; cin >> opc ; switch (opc) { case 1: insertar(); break; case 2: listar(); break; case 3: //listarOrdenados(); break; case 4: cout << " Fin del Programa " << endl; break; default:cout << " Digite una Opcion Valida " << endl; } }while(opc != 4); system("PAUSE"); return 0; }
|
|
|
En línea
|
|
|
|
pudge123
Desconectado
Mensajes: 3
|
Alguien me puede ayudar con el dato que se ingrese en el "sexo" sea primero el femenino?
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Lo que tienes que hacer es reordenar la lista y después volver a llamar a "listar".
Reordenar la lista implica cambiar los nodos de orden para que al recorrerla se queden los alumnos con sexo femenino en primer lugar.
Algoritmos de ordenación hay bastantes... unos son mas eficientes en tiempo, otros en recursos, otros son más sencillos de implementar... hay para todos los gustos.
Quizás el más sencillo sea el de la burbuja... tienes bastante documentación en internet sobre algoritmos de ordenamiento, quizás deberías invertir algo de tiempo en echarles un ojo y aprender sobre el tema, ya que ordenar es algo que te va a tocar en bastantes ocasiones.
Básicamente para ordenar lo que tienes que hacer es recorrer la lista e ir aplicando modificaciones en el orden de los nodos para conseguir que la lista final cumpla los requisitos de ordenación pedidos. En el caso que te ocupa, que las alumnas estén primero y los alumnos después.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda con esta lista encadenada simple
.NET (C#, VB.NET, ASP)
|
alonsomzo
|
0
|
3,299
|
3 Abril 2009, 00:39 am
por alonsomzo
|
|
|
Cargar Lista de un fichero con fseek a una lista auxiliar en el programa.
Programación C/C++
|
samur88
|
1
|
3,332
|
12 Mayo 2011, 23:25 pm
por samur88
|
|
|
estructura doblemente encadenada
Programación C/C++
|
mihina
|
3
|
3,295
|
15 Mayo 2011, 18:59 pm
por ghastlyX
|
|
|
Problema con lista simplemente encadenada
Programación C/C++
|
BJM
|
3
|
2,241
|
14 Diciembre 2012, 23:19 pm
por twins
|
|
|
Nodos de una lista simple encadenada y dos punteros
Programación C/C++
|
MC.cover
|
4
|
2,720
|
23 Abril 2018, 05:10 am
por MC.cover
|
|