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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  como crear funciones para listas enlazadas en c++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como crear funciones para listas enlazadas en c++?  (Leído 3,109 veces)
KINGARZA

Desconectado Desconectado

Mensajes: 33

Facebook: Luis Garza


Ver Perfil
como crear funciones para listas enlazadas en c++?
« en: 14 Julio 2016, 23:18 pm »

HOLA A TODOS!!
ANTES QUE NADA GRACIAS POR LEERLO.

PROBLEMA:
ME HE ATORADO EN QUE NO SE COMO DIVIDIR MI CODIGO EN FUNCIONES.

NOTA: EN EL SEGUNDO CODIGO INTENTE HACER UN MENU.

CODIGO QUE SI FUNCIONA:

Código
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef struct Nodo{
  5.    int dato;
  6.    struct Nodo *siguiente;
  7. }nodo;
  8.  
  9. int main(){
  10.    cin.tie(0);
  11.    ios_base::sync_with_stdio(0);
  12.    system("color 0a");
  13.  
  14.    int numero_De_elementos;
  15.    cout<<"Introduce el numero de elementos:"<<endl;
  16.    cin>>numero_De_elementos;
  17.    if(numero_De_elementos>0){
  18.        int dato;
  19.        nodo *n = NULL;
  20.        nodo *aux = NULL;
  21.        nodo *inicio = NULL;
  22.  
  23.        /*CREACION DE PRIMER NODO*/
  24.        n = (nodo*)malloc(sizeof(nodo));
  25.        cout<<"Introduce el nodo"<<endl;
  26.        cin>>dato;
  27.        n -> dato = dato;
  28.        aux = n;
  29.        inicio = n;
  30.        n -> siguiente = NULL;
  31.  
  32.        /*CREACION DE LOS NODOS RESTANTES*/
  33.        for(int i=1; i<numero_De_elementos; i++){
  34.            cout<<"Introduce el nodo"<<endl;
  35.            cin>>dato;
  36.            n = (nodo*)malloc(sizeof(nodo));
  37.            n -> dato = dato;
  38.            aux -> siguiente = n;
  39.            aux = aux -> siguiente;
  40.            n -> siguiente = NULL;
  41.        }
  42.  
  43.        /*RECORRIDO*/
  44.        aux = inicio;
  45.        while(aux != NULL){
  46.            cout<<aux->dato<<" -> ";
  47.            aux = aux ->siguiente;
  48.        }
  49.    }
  50. return 0;
  51. }

CODIGO CON FUNCIONES QUE NO SIRVE:
Código
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. struct Nodo{
  5.    int dato;
  6.    struct Nodo *siguiente;
  7. };
  8. typedef struct Nodo *Lista;
  9. void primer_nodo(nodo n, nodo aux, nodo inicio)){
  10.    int valor;
  11.    cout<<endl<<"INTRODUCE EL VALOR DEL NODO ";
  12.    cin>>valor;
  13.    n = (nodo*)malloc(sizeof(nodo));
  14.    n -> dato = valor;
  15.    aux = n;
  16.    inicio = n;
  17.    n -> siguiente = NULL;
  18. }
  19.  
  20. void agregar_nodo(nodo n, nodo aux){
  21.    cout<<endl<<"INTRODUCE EL VALOR DEL NODO ";
  22.    cin>>valor;
  23.    n = (nodo*)malloc(sizeof(nodo));
  24.    n -> dato = valor;
  25.    aux -> siguiente = n;
  26.    aux = n;
  27. }
  28.  
  29. void imprimir(nodo aux, nodo inicio){
  30.    aux = inicio;
  31.    while(aux !=  NULL){
  32.        cout<<aux -> dato<<" -> ";
  33.        aux = aux -> siguiente;
  34.    }
  35. }
  36.  
  37. int main(){
  38.    system("color 0a");
  39.    int respuesta;
  40.    int contador=0;
  41.    nod *n =  NULL;
  42.    nodo *aux =  NULL;
  43.    nodo *inicio =  NULL;
  44.    cout<<"LISTAS ENLAZADAS"<<endl<<endl;
  45.    cout<<"0) MOSTRAR EL NUMERO DE ELEMENTOS DE LA LISTA"<<endl;
  46.    cout<<"1) AGREGAR ELEMENTO AL FINAL"<<endl;
  47.    cout<<"2) ELIMINAR ELEMENTO AL FINAL (AUN NO SIRVE xD)"<<endl;
  48.    cout<<"3) MOSTAR LISTA"<<endl;
  49.    cout<<"4) SALIR"<<endl;
  50.    cout<<endl<<"INTRODUCE EL NUMERO DE LA OPCION DESEADA ";
  51.    while(respuesta != 4){
  52.        cin>>respuesta;
  53.  
  54.        if(respuesta == 0)
  55.            cout<<contador;
  56.  
  57.        if(respuesta == 1){
  58.            if(contador == 0)
  59.                primer_nodo(n,aux,inicio);
  60.            else
  61.                agregar_nodo(n,aux);
  62.  
  63.        }
  64.        if(respuesta == 2)
  65.  
  66.        if(respuesta == 3)
  67.            imprimir(aux,inicio);
  68.  
  69.    }
  70.    return 0;
  71. }


« Última modificación: 14 Julio 2016, 23:27 pm por KINGARZA » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: como crear funciones para listas enlazadas en c++?
« Respuesta #1 en: 14 Julio 2016, 23:34 pm »

Te dejo unos de mis videoa





En línea

KINGARZA

Desconectado Desconectado

Mensajes: 33

Facebook: Luis Garza


Ver Perfil
Re: como crear funciones para listas enlazadas en c++?
« Respuesta #2 en: 14 Julio 2016, 23:42 pm »

MUCHAS GRACIAS ALBERTO, DEJAME CHECAR TUS VIDEOS, YA SI TENGO UNA DUDA LES AVISO JEJE
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: como crear funciones para listas enlazadas en c++?
« Respuesta #3 en: 14 Julio 2016, 23:52 pm »

Esta bien, he visto que al parecer tienes problemas con el concepto de apuntador, ya que en las funciones declaras como un dato normal

Código
  1. void agregar_nodo(nodo n, nodo aux){

Pero deberia de ser un apuntador...

Código
  1. void agregar_nodo(nodo *n, nodo *aux){

Saludos!
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