Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - josue_tux

#1

al momento de graficar arboles binarios me dipen que grafique el siguiente arbol
14, 15 , 4, 9, 7, 18, 3, 5, 16, 4, 20, 17, 9, 14, 5            
                                  14
                                /     \
                             4          15
                           /    \        /  \
                         3       9    14    18
                                 / \      /    \
                               7    9     16   20
                              /             \
                             5               17
                           /
                         4



bueno mi consulta es si aplico bien la insercion de elementos duplicados en un arbol binario:
- si hay un valor duplicador insertarlo a la derecha de dicho nodo asumiendo (>=)

por favor si estoy errando me harian el favor de decirme cual es la regla para efectuar la insercion de duplicados en un arbol binario.
#2
Programación C/C++ / ayuda en listas
27 Junio 2011, 23:39 PM
hola tengo una consulta como puedo modificar mi programa para que acepte cadenas y no solo un caracter: aqui adjunto mi programa.

#include <stdio.h>
#include <stdlib.h>
typedef struct nodo
{
   char elemento;
  struct nodo *siguiente;
  struct nodo *anterior;
} NODOLISTA;

typedef NODOLISTA *PtrNodo;
typedef NODOLISTA *Lista;

void insertar(Lista*, char);
void mostrar(Lista);

main()
{
      Lista lista=NULL;
      insertar(&lista,'Juan');
      insertar(&lista,'Homero');
           
      mostrar(lista);
      getchar();
      return 0;
}

void insertar(Lista *lista, char nombre)
{
   PtrNodo nuevo, actual;
   nuevo = (PtrNodo)malloc(sizeof(NODOLISTA));
   nuevo->elemento = nombre;
   actual = *lista;
   if(actual)
     {
         while(actual->anterior)
              {
                actual = actual->anterior;
              }
     }
   if(!actual || actual->elemento > nombre)
     {
        nuevo->siguiente = actual;
        nuevo->anterior = NULL;
        if(actual)
          {
            actual->anterior = nuevo;
          }
        if(!*lista)
          {
            *lista = nuevo;
          }
     }
   else
      {
         while(actual->siguiente &&actual->siguiente->elemento <= nombre)
              {
                 actual = actual->siguiente;
              }
         nuevo->siguiente= actual->siguiente;
         actual->siguiente = nuevo;
         nuevo->anterior = actual;
         if(nuevo->siguiente)
           {
         nuevo->siguiente->anterior = nuevo;
      }
   }
}

void mostrar(Lista lista)
{
  PtrNodo nodo = lista;
  if(!lista)
    {
      printf("\"La Lista esta Vacia\"");
    }
  else
     {
         while(nodo->anterior)
              {
                 nodo = nodo->anterior;
              }
         while(nodo)
              {
                 printf("-> %s", nodo->elemento);
                 nodo = nodo->siguiente;
              }

     }   
  printf("\n");
}




o alguien no tiene alguna funcion de insertar de una lista de la siguiente forma
insertar(lista,'juan');
#3
Programación C/C++ / ayuda en arbol
27 Junio 2011, 08:07 AM
hola como puedo sumar los datos de esta funcion;por ejemplo la impresion de datos esta correcta,lo que no comprendo es como sumar esos datos impresos

ejemplo: digite nivel: 2
             los datos del nivel 2: 10 30
             la suma del nivel:?


void nodos_nivel(struct nodo* NODOARBOL, int nivel)
{
     if(NODOARBOL)
       if(nivel==1)
          printf("%d\t",NODOARBOL->dato);
       else
          {
             nodos_nivel(NODOARBOL->izq,nivel-1);
             nodos_nivel(NODOARBOL->der,nivel-1);
          }
}
#4
Programación C/C++ / ayuda en cola
26 Junio 2011, 06:47 AM
que debo modificar para eliminar los elementos impares, no me permiten usar funciones auxiliares en mi programa:



int Borrar(struct Cola **Cabecera,struct Cola **cola)
{
    int valor;
    struct Cola *Temporal;
    valor=(*Cabecera)->Dato;
    Temporal= *Cabecera;
    *Cabecera=(*Cabecera)->Siguiente;
    if(*Cabecera==NULL)
    *cola=NULL;
    free(Temporal);
    return valor;
}
#5
Bueno mi problema es el siguiente:  diseñe un programa con arboles binarios, que imprima el recorrido inorden de los siguientes datos 1, 6 , 4 , 10, 12, 8. Nota el usuario no debe digitar ningu dato.

bueno , al compilar el programa no me da ningun error, pero no me imprime  el recorrido en Inorden de mi arbol no se en que me estoy equivocando, si me pueden decir, les adjunto el codigo:





#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef int Tipo_elemento;

struct nodo
{
   Tipo_elemento el;
   struct nodo *izq, *der;
};

typedef struct nodo NODO;

NODO* Crear_nodo(Tipo_elemento el);
NODO* Construir(Tipo_elemento el, NODO *izq, NODO *der);

//recibe como parametro un arbol y retorna su hijo izquierdo
NODO* Hijo_izq(NODO *a);

/recibe como parametro un arbol y retorna su hijo derecho
NODO* Hijo_der(NODO *a);

/*------------------- Recoridos del arbol binario ---------------------*/
void Inorden(NODO *a);


/*---------------------------------------------------------------------*/

NODO* Crear_nodo(Tipo_elemento el)
{
  NODO *nuevo;
  nuevo=(NODO*)malloc(sizeof(NODO));
  nuevo->el=el;
  nuevo->izq = nuevo->der = NULL;
  return nuevo;
}
NODO* Construir(Tipo_elemento el, NODO *izq, NODO *der)
{
  NODO *nn;
  nn=Crear_nodo(el);
  nn->izq=izq;
  nn->der=der;
  return (nn);
}
NODO* Hijo_izq(NODO *a)
{
  if(a)
    return (a->izq);
  else
     {
 return (NULL);
     }
}
NODO* Hijo_der(NODO *a)
{
  if(a)
    return (a->der);
  else
     {
 return (NULL);
     }
}

void main()
{
    NODO *raiz=NULL;
    Construir(1,izq,der); Construir(6,NULL,NULL);  Construir(4,NULL,NULL);
    Construir(10,izq,der); Construir(12,NULL,NULL);  Construir(8,NULL,NULL);
   
    printf("El recorrido en inorden sera:");
    Inorden(raiz);
    getchar();
}

void Inorden(NODO *a)
{
   if(a)
     {
 Inorden(a->izq);
 printf("%d", a->el);
 Inorden(a->der);
     }
}





#6
Programación C/C++ / ayuda con ficheros
8 Junio 2011, 23:19 PM
tengo una duda con los ficheros cuando implemento el siguiente codigo solo me crea el txt pero no me guarda nada, pero si me crea el archivo.


FILE *fp;
fp = fopen ( "datos.txt", "w" );
fclose ( fp );


creen que sera por la forma en que pregunto datos por ejemplos lo pregunto con printf(" "); y leo con scanf o es de otra manera les agradeceria
#7

Hola quisiera si alguien tiene ejemplos de ¿Como manejar puerto paralelo con el ensamblador?


#8
Programación C/C++ / ayuda en colas
25 Mayo 2011, 00:08 AM
hola alguien tiene estos codigos: cola de prioridad ascendenete y cola de prioridad descendente, no importa si estan es pdeucocodigo los necesitos para estudiar las colas.
#9
bueno estoy creando una lista, los datos en mi lista son:

nombre: xxxxx
carnet:xxxxx
boleta:xxxxxxxxxx

la cuestions es que quiero poner esos tres datos es un rectangulo, pero tengo un problema, que cuando digitos nombre de diferente longitud el rectangulo me varia por ejemplo:


------------------------------------------------------
|  nombre: zoe  carne: CD200001   boleta:100000001  |
--------------------------------------------------------------
|  nombre: Edenilson   carne: ED200025   boleta:100000002    |
--------------------------------------------------------------
|  nombre: mateo  carne: ED200025   boleta:100000002 |
------------------------------------------------------
ocupo:
 printf("---------------------------------------------------------------\n");
 printf("|");
 printf("nombre:%s  carne:%d  boleta:%d |\n",no, car,bol);
 printf("------------------------------------------------------------------");



lo que quiero saber es si hay alguna forma en c/c++ de imprimir un rentangulo
sin que ese rectangulo no se vea modificado por la longitud de los datos por ejemplo:

---------------------------------------------------------
|  nombre: zoe   carne: CD200001   boleta:100000001      |
---------------------------------------------------------
|  nombre: Edenilson   carne: ED200025   boleta:100000002|
---------------------------------------------------------
| nombre: mateo    carne: ED200025   boleta:100000002    |
---------------------------------------------------------
nota: he ocupado validacion para que no exceda las longitudes




#10
estoy creando el juego quien quiere ser millonario:

typedef struct nodo
{
   struct millonario date;
   struct nodo *next;   
}stack;


bueno lo que no entiendio es porque me dijieron que la implentacion la hiciera con manejo de pilas, yo se que las pilas son un tipo de listas que tiene la condicion "ultimo elemento que entra es el primero que sale" bueno si asi que logica se puede interpretar efectuaro con pilas, no entiendo.