Ir para conteúdo
Fórum Script Brasil

megghaz

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que megghaz postou

  1. Preciso entregar o seguinte programa: Uma árvore que simula a matricula de alunos que foram indicados por outros alunos. quem não foi indicado por ninguém vira "folha" do gerente... o aluno que indica novos alunos ganha um desconto de um real por aluno indicado alem dos cadastros dos alunos o programa precisa mostra a arvore de cada aluno(quais alunos forma indicados por ele) O QUE EU JÁ CONSEGUI FAZER #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ char nome[100]; int desconto; }elemento; const elemento VL_NULO={""}; #include "tad_arvore.cpp" tree arvore; int main(){ char op; int contaDesconto; elemento filho, pai; tree arv; strcpy(pai.nome,"gerente"); criaRaiz(&arvore,pai); do{ system("cls"); printf("1-aluno indicado\n2-não indicado\n"); scanf("%c",&op); if(op=='1'){ printf("Digite o nome de quem indicou"); fflush(stdin); gets(pai.nome); } else if(op=='2'){ strcpy(pai.nome,"gerente"); } printf("digite o nome do aluno\n"); fflush(stdin); gets(filho.nome); arv=localiza(arvore,pai); if(arv!=NULL){ if(arv->esq!=NULL){ arv=arv->esq; do{ if(arv->dir==NULL){ adicionarDir(arvore,arv->info,filho); printf("direita de %s\n",arv->info.nome); system("pause"); break; } else arv=arv->dir; }while(1); } else{ adicionarEsq(arvore,arv->info,filho); printf("Esquerda de %s\n",arv->info.nome); system("pause"); } } }while(1); } IMPLEMENTAÇÃO DAS OPERAÇÕES DA ÁRVORE #include<stdlib.h> typedef struct nodo *ptrNodo; struct nodo { elemento info; ptrNodo esq, dir; }; typedef ptrNodo tree; void define(tree *t) { *t = NULL; } void criaRaiz(tree *t,elemento item) { tree no; no = (ptrNodo)malloc(sizeof(struct nodo)); no->esq = NULL; no->dir = NULL; no->info = item; *t = no; } int vazia (tree t) { return (t==NULL); } ptrNodo localiza(tree t, elemento item) { ptrNodo locesq, locdir; locesq = NULL; locdir = NULL; if (strcmpi(t->info.nome,item.nome) != 0) { if (t->esq != NULL) locesq = localiza(t->esq,item); if (locesq == NULL) { if (t->dir != NULL) locdir = localiza(t->dir,item); if (locdir == NULL) return NULL; else return locdir; } else return locesq; } else return t; } int adicionarDir(tree t, elemento item_pai, elemento item) { tree pai, no; pai = localiza(t,item_pai); if (pai!=NULL) if (pai->dir!=NULL) return 0; else { no = (ptrNodo)malloc(sizeof(struct nodo)); no->esq = NULL; no->dir = NULL; no->info = item; pai->dir = no; return 1; } } int adicionarEsq(tree t, elemento item_pai, elemento item) { tree pai, no; pai = localiza(t,item_pai); if (pai!=NULL) if (pai->esq!=NULL) return 0; else { no = (ptrNodo)malloc(sizeof(struct nodo)); no->esq = NULL; no->dir = NULL; no->info = item; pai->esq =no; return 1; } } não sei como calcular o desconto de cada aluno nem como imprimir na tela a arvore com as indicações se eu alguém pudesse me ajudar... POR FAVOR... to desesperado...
×
×
  • Criar Novo...