elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Lista encadenada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lista encadenada  (Leído 2,589 veces)
pudge123

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Lista encadenada
« en: 6 Octubre 2013, 23:49 pm »

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 Desconectado

Mensajes: 1.248


Ver Perfil
Re: Lista encadenada
« Respuesta #1 en: 7 Octubre 2013, 00:09 am »

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 Desconectado

Mensajes: 3


Ver Perfil
Re: Lista encadenada
« Respuesta #2 en: 7 Octubre 2013, 00:16 am »

Solo me hace falta la funcion de Listar ordenadamente no necesito todo el codigo, me explique mal.

Citar
#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 Desconectado

Mensajes: 3


Ver Perfil
Re: Lista encadenada
« Respuesta #3 en: 7 Octubre 2013, 01:50 am »

Alguien me puede ayudar con el dato que se ingrese en el "sexo" sea primero el femenino?
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Lista encadenada
« Respuesta #4 en: 7 Octubre 2013, 08:32 am »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con esta lista encadenada simple
.NET (C#, VB.NET, ASP)
alonsomzo 0 3,182 Último mensaje 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,122 Último mensaje 12 Mayo 2011, 23:25 pm
por samur88
estructura doblemente encadenada
Programación C/C++
mihina 3 3,031 Último mensaje 15 Mayo 2011, 18:59 pm
por ghastlyX
Problema con lista simplemente encadenada
Programación C/C++
BJM 3 2,033 Último mensaje 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,458 Último mensaje 23 Abril 2018, 05:10 am
por MC.cover
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines