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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


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

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Lista simple -- Error
« en: 17 Noviembre 2016, 03:19 am »

Buenas, mi duda surge al querer hacer una lista y mandarle los parámetros de primero y ultimo, a una función, la cual es invocada previamente. Algo como esto:
Código
  1. #include<iostream>//cout, cin, fixed, endl
  2. #include<iomanip>//setw, setprecision,
  3. #include<stdlib.h>//malloc, free
  4. #include<conio.h>
  5. using namespace std;
  6.  
  7. typedef struct _nodo{
  8. int num;
  9. char nombre[10];
  10. struct _nodo *siguiente;
  11. }tipoNodo; //variable
  12. typedef tipoNodo *pNodo;
  13.  
  14. void mostrar_lista(pNodo *primero, pNodo *ultimo);
  15. void agregar_elemento(pNodo *primero, pNodo *ultimo);
  16. void borrar_elemento(pNodo *primero, pNodo *ultimo);
  17. void funcion();
  18.  
  19. main(){
  20. pNodo primero = NULL, ultimo=NULL;
  21.  
  22. funcion();
  23.  
  24. }
  25.  
  26. void funcion(){
  27.  
  28.  
  29. for(int i=0; i<5; i++){
  30. agregar_elemento(&primero, &ultimo);
  31. }
  32. mostrar_lista(&primero, &ultimo);
  33. }
  34.  
  35. void agregar_elemento(pNodo *primero, pNodo *ultimo){
  36. pNodo nuevo;
  37. system("cls");
  38.  
  39. nuevo = (pNodo)malloc(sizeof(tipoNodo));
  40. cout<<"Dato: ";
  41. cin>>nuevo->num;
  42. cin>>nuevo->nombre;
  43. //nuevo->siguiente=NULL;
  44.  
  45. if(*primero==NULL){
  46. //agrego l?nea
  47. nuevo->siguiente=nuevo;
  48.  
  49. *primero = nuevo;
  50. *ultimo = nuevo;
  51. }else{
  52. //agrego l?nea
  53. nuevo->siguiente=*primero;
  54.  
  55. (*ultimo)->siguiente=nuevo;
  56. *ultimo=nuevo;
  57. }
  58. }
  59.  
  60. void mostrar_lista(pNodo *primero, pNodo *ultimo){
  61. pNodo auxiliar, auxiliar2;
  62. auxiliar = *primero;
  63. auxiliar2 = *primero;
  64. system("cls");
  65. cout<<"Mostrando la lista completa"<<endl;
  66. if(primero==NULL){
  67. cout<<"No hay elementos en la lista";
  68. }else{
  69. while(auxiliar!=NULL){
  70. cout<<auxiliar->num<<" "<<auxiliar->nombre<<endl;
  71. auxiliar = auxiliar->siguiente;
  72.  
  73. if (auxiliar2->siguiente == auxiliar->siguiente){
  74. auxiliar=NULL;
  75. }
  76. }
  77. }
  78. }
  79.  
  80. void borrar_elemento(pNodo *primero, pNodo *ultimo){
  81. pNodo temporal, temporal2, previo, actual;
  82. int n_borrar;
  83. system("cls");
  84. if(primero==NULL){
  85. cout<<"No hay elementos en la lista";
  86. }else{
  87. cout<<"Dame el valor a borrar de la lista"<<endl;
  88. cin>>n_borrar;
  89. temporal=*primero;
  90. temporal2=*primero;
  91. if(n_borrar == (*primero)->num){
  92. *primero=(*primero)->siguiente;
  93. //agrego l?nea
  94. (*ultimo)->siguiente =*primero;
  95.  
  96. free(temporal);
  97. cout<<"Elemento borrado: "<<n_borrar<<endl;
  98. }
  99. else{
  100. previo=*primero;
  101. actual=temporal->siguiente;
  102. while(actual !=NULL && actual->num!=n_borrar){
  103. previo=actual;
  104. actual=actual->siguiente;
  105. }
  106. if(actual!=NULL){
  107. temporal=actual;
  108. previo->siguiente=actual->siguiente;
  109. free(temporal);
  110. cout<<"El elemento borrado fue: "<<n_borrar;
  111. }
  112. }
  113. }
  114. }
Donde primero y ultimo, no son declarados previamente y no encuentro solución al problema. Sé que esa función llamada "función" no me sirve de nada y que lo mejor es no ponerla, pero en el proyecto que hago dicha función hace algo.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
LISTA SIMPLE
Programación C/C++
m87 4 2,671 Último mensaje 5 Junio 2010, 05:48 am
por [D4N93R]
AYUDA ORDENAR LISTA SIMPLE[C]
Programación C/C++
HRSLASH 0 9,109 Último mensaje 23 Abril 2011, 04:22 am
por HRSLASH
Lista circular simple (LCS)
Programación C/C++
Cpp 1 2,136 Último mensaje 11 Diciembre 2014, 01:50 am
por engel lex
C -Error en lista enlazada simple
Programación C/C++
Niber 2 1,450 Último mensaje 22 Mayo 2019, 00:04 am
por Niber
ayuda lista simple imprecion de datos
Programación C/C++
jorgecotrinax 9 2,780 Último mensaje 1 Octubre 2019, 01:39 am
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines