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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [61] 62 63 64
601  Programación / Programación C/C++ / Re: Ayuda con recursividad en: 2 Septiembre 2018, 11:49 am
Habian explicado en clase una forma que era ir disminuyendo el tamaño de la lista y sumando cada dato a otra variable de tipo int suma todo con una sola funcion/procedimiento pero no me acuerdo solo tengo eso



Lo acabo de solucionar era que necesitaba el nodo cabeza que esta en la estructura lista "pnodo inicio", ahi va el codigo completo  ;-)

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. typedef struct tnodo *pnodo;
  7. typedef struct tnodo{
  8. int dato;
  9. pnodo sig;
  10. };
  11. typedef struct tlista{
  12. pnodo inicio;
  13. };
  14.  
  15. void inicia(tlista &lista);
  16. void crear(pnodo &nuevo);
  17. void agregar_final(tlista &lista, pnodo nuevo);
  18. int sumar_nodos(pnodo inicio);
  19. void mostrar(tlista lista);
  20.  
  21. int main()
  22. {
  23. tlista milista;
  24. pnodo nodo;
  25. int opcion, suma=0;
  26. inicia(milista);
  27. do{
  28. system("cls");
  29. cout << "1. Iniciar lista" << endl;
  30. cout << "2. Agregar elementos a la lista" << endl;
  31. cout << "3. Sumar elementos" << endl;
  32. cout << "4. Mostrar lista" << endl;
  33. cout << "5. Salir" << endl;
  34. cin >> opcion;
  35. switch(opcion){
  36. case 1: inicia(milista); break;
  37. case 2: crear(nodo); if(nodo!=NULL){agregar_final(milista,nodo);}; break;
  38. case 3: suma=sumar_nodos(milista.inicio); cout << "SUMA: " << suma << endl; break;
  39. case 4: cout << "***LISTA***" << endl; mostrar(milista); break;
  40. case 5: cout << "FIN DEL  PROGRAMA" << endl; break;
  41. default: cout << "Opcion incorrecta" << endl;
  42. }
  43. system("pause");
  44. }while(opcion!=5);
  45. }
  46.  
  47. void inicia(tlista &lista)
  48. {
  49. lista.inicio=NULL;
  50. }
  51.  
  52. void crear(pnodo &nuevo)
  53. {
  54. nuevo=new tnodo;
  55. if(nuevo!=NULL){
  56. cout << "Ingrese valor: "; cin >> nuevo->dato;
  57. nuevo->sig=NULL;
  58. }
  59. else{
  60. cout << "MEMORIA INSUFICIENTE" << endl;
  61. }
  62. }
  63.  
  64. void agregar_final(tlista &lista, pnodo nuevo)
  65. {
  66. pnodo i;
  67. if(lista.inicio==NULL){
  68. lista.inicio=nuevo;
  69. }
  70. else{
  71. for(i=lista.inicio;i->sig!=NULL;i=i->sig);
  72. i->sig=nuevo;
  73. }
  74. }
  75.  
  76. int sumar_nodos(pnodo inicio)
  77. {
  78. if(inicio==NULL){
  79. return 0;
  80. }
  81. else{
  82. return inicio->dato+sumar_nodos(inicio->sig);
  83. }
  84. }
  85.  
  86. void mostrar(tlista lista)
  87. {
  88. pnodo i;
  89. if(lista.inicio!=NULL){
  90. for(i=lista.inicio;i!=NULL;i=i->sig){
  91. cout << "Nodo: " << i->dato << endl;
  92. }
  93. cout << endl;
  94. }
  95. else{
  96. cout << "LISTA VACIA" << endl;
  97. }
  98. }
  99.  
::) ::) ::)
 ;-) ;-) ;-)


Mod: Prohibido el doble o triple post. Usa el botón "Modificar".
602  Programación / Programación C/C++ / Ayuda con recursividad en: 2 Septiembre 2018, 00:07 am
Hola, necesito una ayuda , non puedo sumar los valores de una lista enlazada simple la cual tiene un apuntador de inicio, dejo al estructura y la funcion recursiva que logre hasta ahora

Código
  1. typedef struct tnodo *pnodo;
  2. typedef struct tnodo{
  3. int dato;
  4. pnodo sig;
  5. };
  6. typedef struct tlista{
  7. pnodo inicio;
  8. };

Código
  1. int sumar(tlista lista)
  2. {
  3. pnodo i;
  4. if(lista.inicio==NULL){
  5. return 0;
  6. }
  7. else{
  8. return lista.inicio->dato+sumar(i=i->sig);
  9. }
  10. }

 ;-)
603  Programación / Programación C/C++ / Re: Ordenamiento de listas por seleccion en: 1 Septiembre 2018, 10:52 am
Código
  1. void ordenar_lista(pnodo &lista)
  2. {
  3. pnodo i, j, min;
  4. int aux;
  5. for(i=lista;i->sig!=NULL;i=i->sig){
  6. min=i;
  7. for(j=i->sig;j!=NULL;j=j->sig){//Esto no entiendo
  8. if(j->dato<min->dato){
  9. min=j;
  10. }
  11. }
  12. if(min!=i){
  13. aux=min->dato;
  14.    min->dato=i->dato;
  15.    i->dato=aux;
  16. }
  17. }
  18. }

Datos de entrada:
9
8
6
4
2
1
Datos de salida
1
2
4
6
8
9



Perdon me mareo

Código
  1. void ordenar_lista(pnodo &lista)
  2. {
  3. pnodo i, j, min;
  4. int aux;
  5. for(i=lista;i->sig!=NULL;i=i->sig){
  6. min=i;
  7. for(j=i->sig;j!=NULL;j=j->sig){//Esto no entiendo
  8. if(j->dato<min->dato){
  9. min=j;
  10. }
  11. }
  12. if(min!=i){
  13. aux=i->dato;
  14.    i->dato=min->dato;
  15.    min->dato=aux;
  16. }
  17. }
  18. }


Mod: Prohibido el doble o triple post. Usa el botón "Modificar".
604  Programación / Programación C/C++ / Ordenamiento de listas por seleccion en: 1 Septiembre 2018, 08:22 am
Hola picolos bambinos, alguien me podria decir porque mi metodo de ordenacion seleccion en listas simplemente enlazadas no funciona?

void ordenar_lista(pnodo &lista)//Este es el modulo ->

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. typedef struct tnodo *pnodo;
  7. typedef struct tnodo{
  8. int dato;
  9. pnodo sig;
  10. };
  11.  
  12. void inicia(pnodo &lista);
  13. void crear(pnodo &nuevo);
  14. void agregar_final(pnodo &lista, pnodo nuevo);
  15. void ordenar_lista(pnodo &lista);
  16. void mostrar(pnodo lista);
  17.  
  18. int main()
  19. {
  20. pnodo milista, nuevo;
  21. int opcion;
  22. inicia(milista);
  23. do{
  24. system("cls");
  25. cout << "1. Iniciar lista" << endl;
  26. cout << "2. Agregar elemento" << endl;
  27. cout << "3. Ordenar lista" << endl;
  28. cout << "4. Mostrar lista" << endl;
  29. cout << "5. Salir" << endl;
  30. cin >> opcion;
  31. switch(opcion){
  32. case 1: inicia(milista); break;
  33. case 2: crear(nuevo); if(nuevo!=NULL){agregar_final(milista,nuevo);}; break;
  34. case 3: ordenar_lista(milista); break;
  35. case 4: cout << "*** LISTA ***" << endl; mostrar(milista); break;
  36. case 5: cout << "FIN DEL  PROGRAMA" << endl; break;
  37. default: cout << "Opcion incorrecta" << endl;
  38. }
  39. system("pause");
  40. }while(opcion!=5);
  41. }
  42.  
  43. void inicia(pnodo &lista)
  44. {
  45. lista=NULL;
  46. }
  47.  
  48. void crear(pnodo &nuevo)
  49. {
  50. nuevo=new tnodo;
  51. if(nuevo!=NULL){
  52. cout << "Ingrese valor: "; cin >> nuevo->dato;
  53. nuevo->sig=NULL;
  54. }
  55. else{
  56. cout << "MEMORIA INSUFICIENTE" << endl;
  57. }
  58. }
  59.  
  60. void agregar_final(pnodo &lista, pnodo nuevo)
  61. {
  62. pnodo i;
  63. if(lista==NULL){
  64. lista=nuevo;
  65. }
  66. else{
  67. for(i=lista;i->sig!=NULL;i=i->sig);
  68. i->sig=nuevo;
  69. }
  70. }
  71.  
  72. void ordenar_lista(pnodo &lista)
  73. {
  74. pnodo i, j, min;
  75. int aux;
  76. for(i=lista;i->sig!=NULL;i=i->sig){
  77. min=i;
  78. for(j=lista;j->sig!=NULL;j=j->sig){
  79. j=i->sig;
  80. if(j->dato<i->dato){
  81. min->dato=j->dato;
  82. min->sig=j->sig;
  83. }
  84. }
  85. aux=i->dato;
  86. i->dato=min->dato;
  87. min->dato=aux;
  88. }
  89. }
  90.  
  91. void mostrar(pnodo lista)
  92. {
  93. pnodo i;
  94. if(lista!=NULL){
  95. for(i=lista;i!=NULL;i=i->sig){
  96. cout << "Nodo: " << i->dato << endl;
  97. }
  98. cout << endl;
  99. }
  100. else{
  101. cout << "LISTA VACIA" << endl;
  102. }
  103. }
  104.  



No se que pasa no me ordena como yo quiero, esto es lo que pude lograr hasta ahora
Código
  1. void ordenar_lista(pnodo &lista)
  2. {
  3. pnodo i, j, min;
  4. int aux;
  5. for(i=lista;i->sig!=NULL;i=i->sig){
  6. min=i;
  7. for(j=i->sig;j->sig!=NULL;j=j->sig){
  8. if(min->dato>j->dato){
  9. min=j;
  10. }
  11. }
  12. if(min!=i){
  13. aux=i->dato;
  14.    i->dato=j->dato;
  15.    j->dato=aux;
  16. }
  17. }
  18. }


Mod: Prohibido el doble o triple post. Usa el botón "Modificar".
605  Programación / Programación C/C++ / Re: Ayuda con listas sinples en: 31 Agosto 2018, 22:51 pm
El problema es que mi modulo de agregar nodo al final me agrega un nodo pero adelante como lo soluciono? Desde ya gracias chavales

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. typedef struct tnodo *pnodo;
  7. typedef struct tnodo{
  8. int dato;
  9. pnodo sig;
  10. };
  11. typedef struct tlista{
  12. pnodo inicio;
  13. int contador;
  14. };
  15.  
  16. void inicia(tlista &lista);
  17. void crear(pnodo &nuevo);
  18. void agregar_inicio(tlista &lista, pnodo nuevo);
  19. void agregar_final(tlista &lista, pnodo nuevo);
  20. void agregar_orden(tlista &lista, pnodo nuevo);
  21. pnodo quitar_inicio(tlista &lista);
  22. pnodo quitar_final(tlista &lista);
  23. pnodo quitar_nodo(tlista &lista, int valor);
  24. bool buscar_nodo(tlista lista,int valor);
  25. void mostrar(tlista lista);
  26.  
  27. int main()
  28. {
  29. tlista milista;
  30. pnodo nuevonodo, eliminado;
  31. int opcion, num;
  32. inicia(milista);
  33. do{
  34. system("cls");
  35. cout << "1. Iniciar lista" << endl;
  36. cout << "2. Agregar al inicio" << endl;
  37. cout << "3. Agregar al final" << endl;
  38. cout << "4. Agregar en orden" << endl;
  39. cout << "5. Quitar al inicio" << endl;
  40. cout << "6. Quitar al final" << endl;
  41. cout << "7. Quitar valor" << endl;
  42. cout << "8. Buscar valor" << endl;
  43. cout << "9. Mostrar lista" << endl;
  44. cout << "10. Salir" << endl;
  45. cin >> opcion;
  46. switch(opcion){
  47. case 1: inicia(milista); break;
  48. case 2: crear(nuevonodo); if(nuevonodo!=NULL){agregar_inicio(milista,nuevonodo);}; break;
  49. case 3: crear(nuevonodo); if(nuevonodo!=NULL){agregar_final(milista,nuevonodo);}; break;
  50. case 4: crear(nuevonodo); if(nuevonodo!=NULL){agregar_orden(milista,nuevonodo);}; break;
  51. case 5: eliminado=quitar_inicio(milista);
  52. if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
  53. else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  54. case 6: eliminado=quitar_final(milista);
  55. if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
  56. else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  57. case 7: cout << "Igrese valor a eliminar: "; cin >> num; eliminado=quitar_nodo(milista,num);
  58. if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl; delete(eliminado);}
  59. else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  60. case 8: cout << "Ingrese valor buscado: "; cin >> num;
  61. if(buscar_nodo(milista,num)==true){cout << "VALOR ENCONTRADO" << endl;}
  62. else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  63. case 9: cout << "*** LISTA ***" << endl; mostrar(milista); break;
  64. case 10: cout << "FIN DEL  PROGRAMA" << endl; break;
  65. default: cout << "Opcion incorrecta" << endl;
  66. }
  67. system("pause");
  68. }while(opcion!=10);
  69. }
  70.  
  71. void inicia(tlista &lista)
  72. {
  73. lista.inicio=NULL;
  74. lista.contador=0;
  75. }
  76.  
  77. void crear(pnodo &nuevo)
  78. {
  79. nuevo=new tnodo;
  80. if(nuevo!=NULL){
  81. cout << "Ingrese valor: "; cin >> nuevo->dato;
  82. nuevo->sig=NULL;
  83. }
  84. else{
  85. cout << "MEMORIA INSUFICIENTE" << endl;
  86. }
  87. }
  88.  
  89. void agregar_inicio(tlista &lista, pnodo nuevo)
  90. {
  91. if (lista.inicio==NULL){
  92.     lista.inicio=nuevo;
  93.    }
  94.   else{
  95.   nuevo->sig=lista.inicio;
  96.     lista.inicio=nuevo;
  97.   }
  98.   lista.contador++;
  99. }
  100.  
  101. void agregar_final(tlista &lista, pnodo nuevo)
  102. {
  103. pnodo i;
  104. if(lista.inicio==NULL){
  105. lista.inicio=nuevo;
  106. }
  107. else{
  108. for(i=lista.inicio;i->sig!=NULL;i=i->sig);
  109. i->sig=nuevo;
  110. }
  111. lista.contador++;
  112. }
  113.  
  114. void agregar_orden(tlista &lista, pnodo nuevo)
  115. {
  116. pnodo i;
  117. if(lista.inicio==NULL){
  118. lista.inicio=nuevo;
  119. }
  120. else{
  121. if(nuevo->dato<lista.inicio->dato){
  122. nuevo->sig=lista.inicio;
  123. lista.inicio=nuevo;
  124. }
  125. else{
  126. for(i=lista.inicio;i->sig!=NULL && nuevo->dato>(i->sig)->dato;i=i->sig);
  127. nuevo->sig=i->sig;
  128. i->sig=nuevo;
  129. }
  130. }
  131. lista.contador++;
  132. }
  133.  
  134. pnodo quitar_inicio(tlista &lista)
  135. {
  136. pnodo borrado;
  137. if(lista.inicio==NULL){
  138. borrado=NULL;
  139. }
  140. else{
  141. borrado=lista.inicio;
  142. lista.inicio=lista.inicio->sig;
  143. borrado->sig=NULL;
  144. }
  145. lista.contador--;
  146. return borrado;
  147. }
  148.  
  149. pnodo quitar_final(tlista &lista)
  150. {
  151. pnodo borrado, i;
  152. if(lista.inicio==NULL){
  153. borrado=NULL;
  154. }
  155. else{
  156. if(lista.inicio->sig==NULL){
  157. borrado=lista.inicio;
  158. lista.inicio=NULL;
  159. }
  160. else{
  161. for(i=lista.inicio;(i->sig)->sig!=NULL;i=i->sig);
  162. borrado=i->sig;
  163. i->sig=NULL;
  164. }
  165. }
  166. lista.contador--;
  167. return borrado;
  168. }
  169.  
  170. pnodo quitar_nodo(tlista &lista, int valor)
  171. {
  172. pnodo borrado, i;
  173. if(lista.inicio==NULL){
  174. borrado=NULL;
  175. }
  176. else{
  177. if(lista.inicio->dato==valor){
  178. borrado=lista.inicio;
  179. lista.inicio=borrado->sig;
  180. borrado->sig=NULL;
  181. }
  182. else{
  183. for(i=lista.inicio;i->sig!=NULL && valor!=(i->sig)->dato;i=i->sig);
  184. if(i->sig!=NULL){
  185. borrado=i->sig;
  186. i->sig=borrado->sig;
  187. borrado->sig=NULL;
  188. }
  189. else{
  190. borrado=NULL;
  191. }
  192. }
  193. lista.contador--;
  194. }
  195. return borrado;
  196. }
  197.  
  198. bool buscar_nodo(tlista lista,int valor)
  199. {
  200. pnodo i;
  201. bool encontrado=false;
  202. if(lista.inicio!=NULL){
  203. for(i=lista.inicio;i!=NULL && encontrado==false;i=i->sig){
  204. if(i->dato==valor){
  205. encontrado=true;
  206. }
  207. }
  208. }
  209. return encontrado;
  210. }
  211.  
  212. void mostrar(tlista lista)
  213. {
  214. pnodo i;
  215. if(lista.inicio!=NULL){
  216. for(i=lista.inicio;i!=NULL;i=i->sig){
  217. cout << "Nodo: " << i->dato << endl;
  218. }
  219. cout << endl;
  220. cout << "Cantidad de elementos: " << lista.contador << endl;
  221. }
  222. else{
  223. cout << "LISTA VACIA" << endl;
  224. }
  225. }
606  Programación / Programación C/C++ / Ayuda con listas sinples en: 31 Agosto 2018, 20:25 pm
Hola amig@s queria que me ayudaran a entender como sucede la magia en este fragmento que acabo de hacer entiendo lista de forma generica pero hay cosas que no me cierran como la sintaxis de C++ en listas y otras cosillas, desde  ya muchas gracias  ;-)

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. typedef struct tnodo *pnodo;
  7. typedef struct tnodo{
  8. int dato;
  9. pnodo sig;
  10. };
  11.  
  12. void inicia(pnodo &lista);
  13. void crear(pnodo &nuevo);
  14. void agregar_inicio(pnodo &lista, pnodo nuevo);
  15. void agregar_final(pnodo &lista, pnodo nuevo);
  16. void agregar_orden(pnodo &lista, pnodo nuevo);
  17. pnodo quitar_inicio(pnodo &lista);
  18. pnodo quitar_final(pnodo &lista);
  19. pnodo quitar_nodo(pnodo &lista, int valor);
  20. bool buscar_nodo(pnodo lista,int valor);
  21. void mostrar(pnodo lista);
  22.  
  23. int main()
  24. {
  25. pnodo milista, nuevonodo, eliminado;
  26. int opcion, num;
  27. inicia(milista);
  28. do{
  29. system("cls");
  30. cout << "1. Iniciar lista" << endl;
  31. cout << "2. Agregar al inicio" << endl;
  32. cout << "3. Agregar al final" << endl;
  33. cout << "4. Agregar en orden" << endl;
  34. cout << "5. Quitar al inicio" << endl;
  35. cout << "6. Quitar al final" << endl;
  36. cout << "7. Quitar valor" << endl;
  37. cout << "8. Buscar valor" << endl;
  38. cout << "9. Mostrar lista" << endl;
  39. cout << "10. Salir" << endl;
  40. cin >> opcion;
  41. switch(opcion){
  42. case 1: inicia(milista); break;
  43. case 2: crear(nuevonodo); if(nuevonodo!=NULL){agregar_inicio(milista,nuevonodo);}; break;
  44. case 3: crear(nuevonodo); if(nuevonodo!=NULL){agregar_inicio(milista,nuevonodo);}; break;
  45. case 4: crear(nuevonodo); if(nuevonodo!=NULL){agregar_orden(milista,nuevonodo);}; break;
  46. case 5: eliminado=quitar_inicio(milista);
  47. if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
  48. else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  49. case 6: eliminado=quitar_final(milista);
  50. if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
  51. else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  52. case 7: cout << "Igrese valor a eliminar: "; cin >> num; eliminado=quitar_nodo(milista,num);
  53. if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl; delete(eliminado);}
  54. else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  55. case 8: cout << "Ingrese valor buscado: "; cin >> num;
  56. if(buscar_nodo(milista,num)==true){cout << "VALOR ENCONTRADO" << endl;}
  57. else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
  58. case 9: cout << "*** LISTA ***" << endl; mostrar(milista); break;
  59. case 10: cout << "FIN DEL  PROGRAMA" << endl; break;
  60. default: cout << "Opcion incorrecta" << endl;
  61. }
  62. system("pause");
  63. }while(opcion!=10);
  64. }
  65.  
  66. void inicia(pnodo &lista)
  67. {
  68. lista=NULL;
  69. }
  70.  
  71. void crear(pnodo &nuevo)
  72. {
  73. nuevo=new tnodo;
  74. if(nuevo!=NULL){
  75. cout << "Ingrese valor: "; cin >> nuevo->dato;
  76. nuevo->sig=NULL;
  77. }
  78. else{
  79. cout << "MEMORIA INSUFICIENTE" << endl;
  80. }
  81. }
  82.  
  83. void agregar_inicio(pnodo &lista, pnodo nuevo)
  84. {
  85. nuevo->sig=lista;
  86. lista=nuevo;
  87. }
  88.  
  89. void agregar_final(pnodo &lista, pnodo nuevo)
  90. {
  91. pnodo i;
  92. if(lista==NULL){
  93. lista=nuevo;
  94. }
  95. else{
  96. for(i=lista;i->sig!=NULL;i=i->sig);
  97. i->sig=nuevo;
  98. }
  99. }
  100.  
  101. void agregar_orden(pnodo &lista, pnodo nuevo)
  102. {
  103. pnodo i;
  104. if(lista==NULL){
  105. lista=nuevo;
  106. }
  107. else{
  108. if(nuevo->dato<lista->dato){
  109. nuevo->sig=lista;
  110. lista=nuevo;
  111. }
  112. else{
  113. for(i=lista;i->sig!=NULL && nuevo->dato>(i->sig)->dato;i=i->sig);
  114. nuevo->sig=i->sig;
  115. i->sig=nuevo;
  116. }
  117. }
  118. }
  119.  
  120. pnodo quitar_inicio(pnodo &lista)
  121. {
  122. pnodo borrado;
  123. if(lista==NULL){
  124. borrado=NULL;
  125. }
  126. else{
  127. borrado=lista;
  128. lista=lista->sig;
  129. borrado->sig=NULL;
  130. }
  131. return borrado;
  132. }
  133.  
  134. pnodo quitar_final(pnodo &lista)
  135. {
  136. pnodo borrado, i;
  137. if(lista==NULL){
  138. borrado=NULL;
  139. }
  140. else{
  141. if(lista->sig==NULL){
  142. borrado=lista;
  143. lista=NULL;
  144. }
  145. else{
  146. for(i=lista;(i->sig)->sig!=NULL;i=i->sig);
  147. borrado=i->sig;
  148. i->sig=NULL;
  149. }
  150. }
  151. return borrado;
  152. }
  153.  
  154. pnodo quitar_nodo(pnodo &lista, int valor)
  155. {
  156. pnodo borrado, i;
  157. if(lista==NULL){
  158. borrado=NULL;
  159. }
  160. else{
  161. if(lista->dato==valor){
  162. borrado=lista;
  163. lista=borrado->sig;
  164. borrado->sig=NULL;
  165. }
  166. else{
  167. for(i=lista;i->sig!=NULL && valor!=(i->sig)->dato;i=i->sig);
  168. if(i->sig!=NULL){
  169. borrado=i->sig;
  170. i->sig=borrado->sig;
  171. borrado->sig=NULL;
  172. }
  173. else{
  174. borrado=NULL;
  175. }
  176. }
  177. }
  178. return borrado;
  179. }
  180.  
  181. bool buscar_nodo(pnodo lista,int valor)
  182. {
  183. pnodo i;
  184. bool encontrado=false;
  185. if(lista!=NULL){
  186. for(i=lista;i!=NULL && encontrado==false;i=i->sig){
  187. if(i->dato==valor){
  188. encontrado=true;
  189. }
  190. }
  191. }
  192. return encontrado;
  193. }
  194.  
  195. void mostrar(pnodo lista)
  196. {
  197. pnodo i;
  198. if(lista!=NULL){
  199. for(i=lista;i!=NULL;i=i->sig){
  200. cout << "Nodo: " << i->dato << endl;
  201. }
  202. cout << endl;
  203. }
  204. else{
  205. cout << "LISTA VACIA" << endl;
  206. }
  207. }
  208.  
  209.  
607  Programación / Programación C/C++ / Re: ¿Parar un bucle for pulsando una tecla? en: 22 Agosto 2018, 14:35 pm
Hola  la solucion seria la siguiente xd

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. char input=0;
  8.  
  9. cout << "Presione d para ejecutar ciclo" << endl;
  10. while(1){
  11. cin >> input;
  12. if(input=='d'){
  13. ejecutar ciclo();
  14. }
  15. else{
  16. ejecutar_otras_acciones();
  17. }
  18. }
  19. system("pause");
  20. return 0;
  21. }
608  Programación / Programación C/C++ / Re: no lo entiendo en: 22 Agosto 2018, 14:30 pm
Hola, la solucion seria


Código
  1. for(int i=0;i<strlen(cadena);i++){
  2. cout << cadena[i] << endl;
  3. cout << i+1 << endl;
  4. }
  5. co
609  Programación / Programación C/C++ / Re: necesito una pequeña ayuda con una aplicacion en: 4 Agosto 2018, 01:47 am
el software esta hecho solo que falta la parte dela consulta y que sea real, porque el profesor dijo asi "mas vale que lo hagan funcional o sino nos vemos el año que viene","ya nos decisimos del muerto" y cosas raras hablan no entiendo nada,  asi son casi todos los profesores de mi facultad
610  Programación / Programación C/C++ / Re: necesito una pequeña ayuda con una aplicacion en: 3 Agosto 2018, 05:15 am
Obvio bb pero en Argentina no encuentro ninguna pagina que sea gratis y no tarde 5 dias en darme el resultado, aun no probe en la deep web si alguien sabe de un link bienvenido sea muchachos   :laugh:  ;-)  ;D  ;-) ;-) ;-) ;-) ;-) ;-)
Páginas: 1 ... 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [61] 62 63 64
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines