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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  como sacar cualquier elemento de lista
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como sacar cualquier elemento de lista  (Leído 3,582 veces)
karmi

Desconectado Desconectado

Mensajes: 21



Ver Perfil
como sacar cualquier elemento de lista
« en: 11 Noviembre 2010, 04:50 am »

tengo un problema, se que tengo que recorrer mi lista para encontrar el numero que debo sacar pero no  entiendo como, si tengo que sacar por decir el numero que le indique; podrian ayudarme...dejo el codigo

#include <iostream.h>
#include <windows.h>
#include <conio.h>

struct Nodo
{
   int dato;
   Nodo *sig;
};

class Lista
{
private:
   Nodo *inicio;
public:
   Lista ()//constructor
   {
      inicio=NULL;
   }

   void insertar(int d)
   {
      Nodo *nuevo;
      nuevo = new Nodo();
      nuevo->dato=d;
      nuevo->sig=NULL;

      if (inicio == NULL)
      {
         inicio = nuevo;
      }
      else
      {
         Nodo *pos, *ant;         
         pos = inicio;
         ant = inicio;
         while(nuevo->dato > pos->dato)
         {
            ant = pos;
            pos = pos->sig;
            if (pos == NULL)
            {
               break;
            }
         }
         
         if (pos == NULL)//nuevo se agrega al final de la lista
         {
            ant->sig = nuevo;
         }
         else
         {
            if(pos == inicio)
            {
               nuevo->sig = pos;
               inicio = nuevo;
            }
            else
            {
               ant->sig =  nuevo;
               nuevo->sig = pos;
            }
         }
      }

   }

   void Mostrar()
   {
         Nodo *temp;
         temp = inicio;

         if (temp!=NULL)
         {
            do
            {
               cout << temp->dato << endl;
               temp = temp->sig;
            }while(temp!=NULL);
         }
   }
}
+++++++++++++++++++++++
void eliminar() ES AQUI DONDE NO LE HALLO
+++++++++++++++++




void main (void)
{
   Lista numeros;
   int op, n;
   do
   {
      system("cls");
      cout << "M E N U   L I S T A   O R D E N A D A" << endl<<endl;
      cout << "1.- Meter un numero a la lista"<< endl;
      cout << "2.- Sacar un numero de la lista"<< endl;
      cout << "3.- Mostrar la lista"<< endl;
      cout << "4.- Salir"<< endl << endl;

      cout << "Elige una opcion-> ";
      cin >> op;
      
      system("cls");
      switch(op)
      {
      case 1:
         cout << "Introduce el numero: ";
         cin >> n;
         numeros.insertar(n);
         break;
      case 2:
         numeros.eliminar();
         cout << "Numero eliminado de la lista"<<endl;
         break;
      case 3:
         cout << "Los numeros son: " << endl;
         numeros.Mostrar();
         break;
      default:
         cout << "Bye!!!"<<endl;
      }
      getch();
   }while(op>=1 && op<=3);
   
}

agradeceria me explicaran como.gracias


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: como sacar cualquier elemento de lista
« Respuesta #1 en: 11 Noviembre 2010, 09:16 am »

Psss... El problema aqui es que no se entiende qué tienes que hacer. No es lo mismo buscar un elemento con valor X y sacarlo (a), que sacar el elemento número X en la lista (b).

En ambos casos es bastante sencillo:
A) buscas si existe ese elemento recorriendo la lista, y si está, lo extraes.
B) recorres X elementos de la lista, y extraes.

Unos cuantos apuntes a parte de tu duda:
a) a tu clase le falta el destructor.
b) utiliza la etiqueta GeShi del foro para colgar código. De la forma que lo has puesto es dificil de leer.
c) no utilices conio.h para getch (), conio.h es una biblioteca obsoleta, y en vez de getch puedes usar cin.get(), entre otras cosas. (De paso te aconsejo que te mires esto: http://foro.elhacker.net/programacion_cc/ejecutar_programas_en_windows_sin_necesidad_de_pausas_system_pause_etc-t306837.0.html)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines