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 - EddyC

#1
si te referis con nodos intermedios a que le mandas una altura y contas todos los de esa altura es facil te escribo el pseudo :

mostrarnodosalt(puntero a raiz  *R , entero de altura que queres mostrar )
{int n;
if (*r)
  { if(altura==1)
           n=1;
    else
         {if(h<1)
                return 0;
          n=0;
         }
     return mostrarnodosalt(r por izquierda, altura - 1 ) + mostrarnodosalt(r por derecha , altura -1) + n ;
  }
return 0;
}


si no te referias a esto decime y veo si te puedo ayudar , saludos
#2
Hola que tal , mira te voy a dejar otra manera de cargar la lista la cual se maneja con punteros dobles te dejo las funciones , ami nunca me trajeron problemas , las probas y cualquier duda me decis .



//ESTRUCTURAS :

typedef struct
{ // ingresas la info aca
}t_info ;

typedef struct s_nodo
{t_info data;
struct s_nodo *sig;
}t_nodo;

typedef t_nodo * t_lista   // lo que hago aca es declarar a "T_LISTA" como un t_nodo *

//FUNCIONES

int insertarenlista(t_lista *p,t_info *d)
{t_nodo *nue;
nue=(t_nodo *)malloc(sizeof(t_nodo));
if(!nue)
    return 0;  // sin memoria
nue->sig= *p;
nue->data= *d;
*p = nue;
return 1;     // todo bien
}


int sacardelista(t_lista *p,t_info *d)
{t_lista aux;
if(!p)
return 0;   // si lista vacia devuelve 0
aux=*p;
*d=aux->data;
*p=aux->sig;
free(aux);
return 1;        // todo bien
}

#3
como te dicen aca con un while , podes hacerlo de la siguiente manera
creas una variable entera a la que llamas "flag" o "bandera" y la igualas a 0 , antes de pedir los datos por primera vez haces un while que incluya a todos y que tenga como condicion que tu variable "flag" o "bandera" sea igual a 0 , al final de todo preguntas si desea seguir , si desea seguir el flag lo dejas en 0, si no desea seguir lo pones en 1 y de esa manera ya no te pide mas los datos , me explico ?
#4
Que tal , te doy una variante usando punteros a cadena q es mucho mas corta , te devuelve la cantidad de vocales en el texto , lo que pusiste de la "@" no lo entendi bien , si te referis a que termine de buscar vocales cuando encuentra una es muy simple y si lo necesitas te muestro como seria la modificacion , saludos .


#include <stdio.h>
#include <conio.h>

int contar_vocales(char *);

void main()
{char cad[500];
printf("Ingrese el texto a contar vocales : ");
gets(cad);  
printf("La cantidad de Vocales en el texto es %d",contar_vocales(cad));
getch();
}


int contar_vocales(char *cad)
{int cont=0;
char *aux=cad;   //creas un puntero auxiliar con la direccion del comienzo de cad
while(*aux)          // entra mientras el contenido de la cadena != de '\0'
  {if(*aux=='a'||*aux=='e'||*aux=='i'||*aux=='o'||*aux=='u') // podes agregar mayus
            cont++;
   aux++;              
  }
return cont;

}