Autor
|
Tema: funcion elemento central (Leído 809 veces)
|
mapers
Desconectado
Mensajes: 503
|
holas gente del foro hace time que publique una funcion que me ayudaran era sobre el elementocentral en una lista enlazada...nadies me respondio asi que trate de crearla pero me sigue botando erores a que se debe........ #include<iostream.h> struct nodo{ int numero; struct nodo *siguiente; }; typedef struct nodo *mapers; void insertaralinicio(mapers &,int ); void invertirlista(mapers &); void imprimir(mapers &); int elementocentral(mapers &); int elementocentral(mapers &lista) { int c=0,i; mapers t; while(lista!=NULL) { c++; lista=lista->siguiente; } cout<<c; if(c%2==0) { c=c/2; } else { c=c+1/2; } cout<<c<<endl; for(i=0;i<=c;i++) { cout<<lista->numero<<endl; lista=lista->siguiente; } } void insertaralinicio(mapers &lista,int numero1) { mapers q; q=new(struct nodo); q->numero=numero1; q->siguiente=lista; lista=q; } void imprimir(mapers &lista) { while(lista!=NULL) { cout<<lista->numero<<endl; lista=lista->siguiente; } } int main () { mapers lista1,lista2,lista3; int i,k,n,numero1,numero2; lista1=lista2=lista3=NULL; cout<<"numero de elementos de la lista 1"<<endl; cin>>k; for(i=0;i<k;i++) { cout<<"ingrese elemento"<<endl; cin>>numero1; insertaralinicio(lista1,numero1); } cout<<"lista 1"<<endl; imprimir(lista1); cout<<endl; cout<<"el elemento central de la lista es :"<<endl; elementocentral(lista1); cout<<endl; system("pause"); }
|
|
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
 
Desconectado
Mensajes: 2.707
Nie Dam Sie
|
1) Tenes que postear cuales son los errores que te da el programa. Es necesario para saber, sin necesidad de ver el código detenidamente, por donde puede estar el problema. Esto ya lo tendrías que saber bien.
2) El código tiene que estar ordenado, en lo posible indentado, y carente de declaraciones innecesarias (variables sin utilizar etc)
Estas son las causas principales por la cual muchos de tus posts quedan sin respuesta, incluyendo el que mencionas, que por cierto es idéntico a este.
Ahora bien, en cuanto a la función del elemento central, a simple vista parece que estas perdiendo la referencia de los elementos y estas pasando un puntero nulo a las funciones. Ademas, también es factible que estés utilizando el mismo puntero luego de haber recorrido la lista hasta el final dejando esa misma referencia en NULL (me pareció ver eso por ahí)
Depura el programa, y si no sabes como, aunque sea pone pausas y evalúa donde el programa produce el error, y ve revisándolo paso a paso y comprobando si las direcciones de los nodos son correctas, y por sobre todo, si la lógica esta bien elaborada (Puedes hacer un diagrama o una prueba de escritorio).
Yo te aconsejaría que replantees el ejercicio. Me da la sensación que no estas entendiendo los parámetros que utilizas.
Saludos
|
|
|
|
|
En línea
|
 @NeedOfSecurityAn expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
mapers
Desconectado
Mensajes: 503
|
la funcion elemento central no recorre la lista a que se deve ya lo modifique y no recorre la lista cuando imprime imprime 0 int elementocentral(mapers &lista) { int c=0; mapers p; p=lista; if(lista!=NULL) { while(p->siguiente!=NULL) {c++; p=p->siguiente; } } cout<<c; }
|
|
|
|
|
En línea
|
|
|
|
darkraider
Desconectado
Mensajes: 229
|
Macho denserio! Identá sino nadie te va a leer (por lo menos yo)... va con onda
|
|
|
|
|
En línea
|
Curioso de mi...
|
|
|
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
 
Desconectado
Mensajes: 2.938
/^$/
|
Yo no voy con onda, aprende a escribir, es dificil y molesto leerte.
|
|
|
|
|
En línea
|
|
|
|
mapers
Desconectado
Mensajes: 503
|
ya me salio hay esta la solucion ..... #include<iostream.h> struct nodo{ int numero; struct nodo *siguiente; }; typedef struct nodo *mapers; void insertaralinicio(mapers &,int ); void invertirlista(mapers &); void elemenetocentral(mapers &); void insertaralinicio(mapers &lista,int numero1) { mapers q; q=new(struct nodo); q->numero=numero1; q->siguiente=lista; lista=q; } void elemenetocentral(mapers &lista,int t) { int n; for(int i=0;i<=t;i++) { n=lista->numero; lista=lista->siguiente; } cout<<n; } int main () { mapers lista1,lista2,lista3; int i,k,t,numero1,numero2; lista1=lista2=lista3=NULL; cout<<"numero de elementos de la lista 1"<<endl; cin>>k; t=k/2; for(i=0;i<k;i++) { cout<<"ingrese elemento"<<endl; cin>>numero1; insertaralinicio(lista1,numero1); } cout<<"lista 1"<<endl; cout<<"el elemento central de la lista es :"<<endl; elemenetocentral(lista1,t); cout<<endl; cout<<endl; system("pause"); }
|
|
|
|
|
En línea
|
|
|
|
|
|
|
|