
27/11/2009, 18:13
|
| | Fecha de Ingreso: noviembre-2009
Mensajes: 1
Antigüedad: 15 años, 4 meses Puntos: 0 | |
Ayuda Con Programa De C Holaa... Primero que nada acbe destacar que soy relativamente nuevo en estooo y talvez lo que me pase es un error obviooo pero si alguien me puede ayudar estariaaa muyy bien...
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct Nodo{
static const int n = 2;
char * d;
struct Nodo * hijos[n];
int nhijos;
};
typedef struct Nodo Nodo;
void print(Nodo * raiz);
Nodo * crearNodo(char * d)
{
int i, n=2;
Nodo * nuevo;
nuevo=(Nodo*)malloc(sizeof(Nodo));
nuevo->d=(char*)malloc(strlen(d)*sizeof(char)+1);
strcpy(nuevo->d,d);
nuevo->nhijos=0;
for(i=0; i<n; i++)
nuevo->hijos[i]=0;
return nuevo;
}
Nodo * agregar(char * d, Nodo * raiz, char * padre)
{
int i;
if(!raiz)
return crearNodo(d);
if(strcmp(raiz->d,padre)==0)
{
raiz->hijos[raiz->nhijos++]=crearNodo(d);
return raiz;
}
for(i=0; i<raiz->nhijos; i++)
agregar(d, raiz->hijos[i],padre);
return raiz;
}
void print(Nodo* raiz)
{
int i;
if(raiz==NULL) return;
printf("%s\n",raiz->d);
for(i=0; i<raiz->nhijos; i++){
printf("\n");
print(raiz->hijos[i]);
}
getchar();
}
void menu()
{
printf("\n\n\t\t Elige una opcion:\n\n\n");
printf("\t1- Llenar Diagrama De Pert\n");
printf("\t2- Imprimir\n");
printf("\t3- Salir\n");
}
int main()
{
int flag=1;
Nodo *raiz= 0;
do{
menu();
int opcion =0;
Nodo * tree=0;
char cont[2];
scanf("%i", &opcion);
char padre[2]=" ";
switch(opcion)
{
case 1:
raiz=agregar(padre,raiz,0);
break;
case 2: print(raiz);
break;
case 3: flag=0;
break;
} system("cls");
}while(flag==1);
getch();
return 0;
}
En Teoriaaaaa ME debe guardar los datos que le pongaa y hacer un arbol ... peroo uan de dos o no lo guarda o no lo imprime que puede ser?? alguien que me pueda ayudarr ?? Gracias De antemano |