megghaz Postado Dezembro 16, 2008 Denunciar Share Postado Dezembro 16, 2008 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 indicadoalem 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çõesse eu alguém pudesse me ajudar...POR FAVOR...to desesperado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
megghaz
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
IMPLEMENTAÇÃO DAS OPERAÇÕES DA ÁRVOREnã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...
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.