Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
megghaz

Árvore de descontos

Recommended Posts

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-nao 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 nem como começar a montar a fulana da arvore para cada aluno nem como fazer cada folha ter seu desconto...

se eu alguém pudesse me ajudar...

POR FAVOR...

to desesperado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×