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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / Borrar nodo de un arbol en: 10 Diciembre 2010, 04:29 am
ayuda por favor, necesit borrar nodo de mi arbol...agradeceria me ayudasen, posteo mi codigo
Código
  1. #include <iostream.h>
  2. #include <windows.h>
  3.  
  4.  
  5. struct Nodo
  6. {
  7. Nodo *izq;
  8. int dato;
  9. Nodo *der;
  10. };
  11.  
  12. class arbolbinario
  13. {
  14. private:
  15. Nodo *raiz;
  16. public:
  17. arbolbinario()
  18. {
  19. raiz=NULL;
  20. }
  21. void insertar(int d)
  22. {
  23. Nodo *nuevo;
  24. nuevo = new Nodo();
  25. nuevo->izq= NULL;
  26. nuevo->dato=d;
  27. nuevo->der=NULL;
  28.  
  29. if (raiz==NULL)
  30. {
  31. raiz=nuevo;
  32. }
  33. else
  34. {
  35. Nodo *temp, *a;
  36. int b=0;
  37. temp = raiz;
  38. a = NULL;
  39. while(temp!=NULL)
  40. {
  41. a = temp;
  42. if(nuevo->dato<temp->dato)
  43. {
  44. temp = temp->izq;
  45. b=1;
  46. }
  47. else if (nuevo->dato>temp->dato)
  48. {
  49. temp = temp->der;
  50. b=2;
  51. }
  52. }
  53. if (b==1)
  54. {
  55. a->izq=nuevo;
  56. }
  57. else if (b==2)
  58. {
  59. a->der=nuevo;
  60. }
  61. }
  62.  
  63. }
  64.  
  65. void MostrarIn()
  66. {
  67. Nodo *temp;
  68. temp = raiz;
  69. MostrarInorden (temp);
  70. }
  71. void MostrarInorden(Nodo *T)
  72. {
  73. if (T!=NULL)
  74. {
  75. MostrarInorden(T->izq);
  76. cout << T->dato << endl;
  77. MostrarInorden(T->der);
  78. }
  79. }
  80. void MostrarPr()
  81. {
  82. Nodo *temp;
  83. temp = raiz;
  84. MostrarPreorden (temp);
  85. }
  86. void MostrarPreorden(Nodo *T)
  87. {
  88. if (T!=NULL)
  89. {
  90. cout << T->dato << endl;
  91. MostrarPreorden(T->izq);
  92. MostrarPreorden(T->der);
  93. }
  94. }
  95. void mostrarpost()
  96. {
  97. Nodo *temp;
  98. temp=raiz;
  99. mostrarpostorden(temp);
  100.  
  101. }
  102. void mostrarpostorden(Nodo *T)
  103. {
  104. if (T!=NULL)
  105. {
  106. cout<<T->dato<<endl;
  107. mostrarpostorden(T->der);
  108. mostrarpostorden(T->izq);
  109. }
  110. }
  111.  
  112. };
  113.  
  114. int eliminar(int n)
  115. *****ayuda
  116.  
  117. void main (void)
  118. {
  119. arbolbinario numeros;
  120. int op, n;
  121. do
  122. {
  123.  
  124. cout << "A R B O L B I N A R I O" << endl<<endl;
  125. cout << "1.- Insertar nodo"<< endl;
  126. cout << "2.- Mostrar inorden"<< endl;
  127. cout << "3.- Mostrar preorden"<< endl;
  128. cout << "4.- Mostrar postorden"<< endl;
  129. cout << "5.- eliminar numero"<< endl;
  130. cout << "6.- Salir"<< endl << endl;
  131.  
  132. cout << "Elige una opcion-> ";
  133. cin >> op;
  134.  
  135.  
  136. switch(op)
  137. {
  138. case 1:
  139. cout << "Introduce el numero: ";
  140. cin >> n;
  141. numeros.insertar(n);
  142. break;
  143. case 2:
  144. cout << "Inorden"<<endl;
  145. numeros.MostrarIn();
  146. break;
  147. case 3:
  148. cout << "Preorden"<<endl;
  149. numeros.MostrarPr();
  150. break;
  151. case 4:
  152. cout << "Postorden"<<endl;
  153. numeros.mostrarpost();
  154.  
  155. break;
  156. case 5:
  157. cout<<"introduce el numero a eliminar: "<<endl;
  158. numeros.eliminar();
  159. cout<<"numero eliminado"<<endl;
  160.  
  161. case 6:
  162. default:
  163.  
  164.  
  165. cout << "Bye!!!"<<endl;
  166. }
  167.  
  168. }while(1);
  169.  
  170. }
  171.  
  172.  
12  Programación / Programación C/C++ / arbol binario en: 9 Diciembre 2010, 01:57 am
como eliminar un elemento de mi arbol......
Código
  1. #include <iostream.h>
  2. #include <windows.h>
  3. #include <conio.h>
  4.  
  5. struct Nodo
  6. {
  7. Nodo *izq;
  8. int dato;
  9. Nodo *der;
  10. };
  11.  
  12. class arbolbinario
  13. {
  14. private:
  15. Nodo *raiz;
  16. public:
  17. arbolbinario()
  18. {
  19. raiz=NULL;
  20. }
  21. void insertar(int d)
  22. {
  23. Nodo *nuevo;
  24. nuevo = new Nodo();
  25. nuevo->izq= NULL;
  26. nuevo->dato=d;
  27. nuevo->der=NULL;
  28.  
  29. if (raiz==NULL)
  30. {
  31. raiz=nuevo;
  32. }
  33. else
  34. {
  35. Nodo *temp, *a;
  36. int b=0;
  37. temp = raiz;
  38. a = NULL;
  39. while(temp!=NULL)
  40. {
  41. a = temp;
  42. if(nuevo->dato<temp->dato)
  43. {
  44. temp = temp->izq;
  45. b=1;
  46. }
  47. else if (nuevo->dato>temp->dato)
  48. {
  49. temp = temp->der;
  50. b=2;
  51. }
  52. }
  53. if (b==1)
  54. {
  55. a->izq=nuevo;
  56. }
  57. else if (b==2)
  58. {
  59. a->der=nuevo;
  60. }
  61. }
  62.  
  63. }
  64.  
  65. void MostrarIn()
  66. {
  67. Nodo *temp;
  68. temp = raiz;
  69. MostrarInorden (temp);
  70. }
  71. void MostrarInorden(Nodo *T)
  72. {
  73. if (T!=NULL)
  74. {
  75. MostrarInorden(T->izq);
  76. cout << T->dato << endl;
  77. MostrarInorden(T->der);
  78. }
  79. }
  80. void MostrarPr()
  81. {
  82. Nodo *temp;
  83. temp = raiz;
  84. MostrarPreorden (temp);
  85. }
  86. void MostrarPreorden(Nodo *T)
  87. {
  88. if (T!=NULL)
  89. {
  90. cout << T->dato << endl;
  91. MostrarPreorden(T->izq);
  92. MostrarPreorden(T->der);
  93. }
  94. }
  95.  
  96.  
  97.  
  98.    void eliminar();
  99.     ****************
  100. };
  101.  
  102. void main (void)
  103. {
  104. arbolbinario numeros;
  105. int op, n;
  106. do
  107. {
  108. system("cls");
  109. cout << "A R B O L   B I N A R I O" << endl<<endl;
  110. cout << "1.- Insertar nodo"<< endl;
  111. cout << "2.- Mostrar inorden"<< endl;
  112. cout << "3.- Mostrar preorden"<< endl;
  113. cout << "4.- Mostrar postorden"<< endl;
  114. cout << "5.- Salir"<< endl << endl;
  115.  
  116. cout << "Elige una opcion-> ";
  117. cin >> op;
  118.  
  119. system("cls");
  120. switch(op)
  121. {
  122. case 1:
  123. cout << "Introduce el numero: ";
  124. cin >> n;
  125. numeros.insertar(n);
  126. break;
  127. case 2:
  128. cout << "Inorden"<<endl;
  129. numeros.MostrarIn();
  130. break;
  131. case 3:
  132. cout << "Preorden"<<endl;
  133. numeros.MostrarPr();
  134. break;
  135. case 4:
  136. cout << "Postorden"<<endl;
  137.  
  138. break;
  139. default:
  140.  
  141. cout << "Bye!!!"<<endl;
  142. }
  143. getch();
  144. }while(op>=1 && op<=4);
  145.  
  146. }
  147.  
13  Programación / Programación C/C++ / promediar en: 22 Noviembre 2010, 03:37 am
tengo una duda con promediar los numeros impares, tengo un metodo dentro de una clase, en mi lista , pero no se como promediarlos, eh echo contar los impares, ahora como los promedio?  mi metodo es este...


 int promimpares()
      {
        int i=0;
          Nodo *recorrer;
           recorrer = inicio;
           if (recorrer!=NULL)
            {
            do
            {
               if(recorrer->dato%2!=0)
               {
                i++;
                 recorrer = recorrer->sig;
               }

                  else
                    recorrer = recorrer->sig;
            }
               while(recorrer->sig!=NULL);
               if(recorrer->dato%2!=0)
            i++   ;      
              cout<<i;
         
         }
         return i;
      
     }

gracias
14  Programación / Programación C/C++ / problema con metodo de lista en: 19 Noviembre 2010, 02:45 am
hola tengo un problema, lo que pasa es que hice una lista en visual c++, el punto es que quiero contar cuales son los numeros negativos, el programa me corre, pero no me dice cuantos son negativos, espero me ayuden, le pongo el metodo aver si estoy bien...

Código
  1. int negativos()
  2.  
  3. {
  4. int z;
  5. Nodo *recorrer;
  6. recorrer = inicio;
  7.  
  8. if (recorrer!=NULL)
  9. {
  10. do
  11. {
  12. if(recorrer->dato < 0)
  13. {
  14. z=z+1;
  15. recorrer = recorrer->sig;
  16. }
  17.  
  18. else
  19. recorrer = recorrer->sig;
  20. }
  21. while(recorrer->sig!=NULL);
  22. if(recorrer->dato < 0)
  23. z=z+1;
  24. cout<<z;
  25. }
  26. else
  27. {
  28. cout << "lista vacia" << endl;
  29. }
  30. return z;
  31.  
  32. }
15  Programación / Programación C/C++ / 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
16  Programación / Programación C/C++ / mayor pila en: 19 Octubre 2010, 15:12 pm
hola foro tengo un problema, lo que pasa es que necesito saber el numero mayor de mi pila, la que inserte, y pues el problema es que ya busque en varias fuentes y no le hallo, o saber tambien de los ultimos cinco numero que inserte, cual es el mayor...
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines