// programa exemplo de Estruta UNIAO-NOME #include #include // a seguir typedef global de um NOŽ da estrutura // com um campo int e um campo apontador para Pai deste NoŽ typedef struct elemento{ // typedef aqui com nome int vertice; struct elemento *Pai; // aponta para Pai } tipoUNIAONOME; // este eŽ o nome do TIPO tipoUNIAONOME *Novo(int valorvertice){ // entrada eŽ valor int tipoUNIAONOME *pNovo; // a seguir, reserva memoria da Lista Livre pNovo = (tipoUNIAONOME *) malloc(sizeof(tipoUNIAONOME)); if(pNovo != NULL){ pNovo -> vertice = valorvertice; pNovo -> Pai = NULL; return pNovo; // saida eŽ um apontador para este NO criado } else {return NULL;} // Lista Livre esgotada, OVERFLOW } int main(){ tipoUNIAONOME *apontaNO, *apontaNO2, *outroNO; apontaNO = (tipoUNIAONOME *)malloc(sizeof(tipoUNIAONOME)); apontaNO -> vertice = 111; apontaNO -> Pai = NULL; // raiz printf("valor do 1o. vertice = %d \n",apontaNO ->vertice); apontaNO2 = (tipoUNIAONOME *)malloc(sizeof(tipoUNIAONOME)); apontaNO2 -> vertice = 222; apontaNO2 -> Pai = apontaNO; // aponta para o vertice com valor 5 printf("valor do 2o. vertice = %d \n",apontaNO2 ->vertice); printf("valor do 1o. vertice, que ee o pai e raiz = %d \n",apontaNO2 -> Pai -> vertice); outroNO = Novo(333); outroNO -> Pai = apontaNO2; // aponta para o 2o. no printf("valor do 3o. vertice = %d cujo pai ee o 2o. vertice com valor = %d\n", outroNO -> vertice, outroNO -> Pai -> vertice ); system("pause"); return 0; }