#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Paciente{
char nome[50];
char cpf[50];
char sexo[20];
char sintomas[500];
int telefone;
int idade;
int codi;
int urg;
struct Paciente *prox;
}paciente;
typedef struct Arvore{
struct Paciente *No;
struct Arvore *Esq;
struct Arvore *Dir;
}arvore;
void adicionar(arvore **Arv, paciente *pac){
arvore *temp = NULL;
if (*Arv == NULL){
temp
= (arvore
*)malloc(sizeof(arvore
)); temp->Esq = NULL;
temp->Dir = NULL;
temp->No = pac;
*Arv = temp;
}
else {
if (pac->urg < ((*Arv)->No->urg)){
adicionar(&((*Arv)->Esq), pac);
}
else{
adicionar(&((*Arv)->Dir), pac);
}
}
}
// Em Ordem (Do menor pro maior)
void Mostrar(arvore *Arv){
if(Arv != NULL){
Mostrar(Arv->Esq);
printf("Nome: %s\nCPF: %s\nSexo: %s\nIdade: %d\nTelefone: %d\nSintomas: %s\nUrgencia: %d\nCódigo: %d\n", Arv
->No
->nome
, Arv
->No
->cpf
, Arv
->No
->sexo
, Arv
->No
->idade
, Arv
->No
->telefone
, Arv
->No
->sintomas
, Arv
->No
->urg
, Arv
->No
->codi
); Mostrar(Arv->Dir);
}
}
int main(){
arvore *Arv = NULL;
paciente pc;
strcpy(pc.
cpf, "127.452.381-83"); pc.idade = 28;
pc.telefone = 12345678;
pc.codi = 1;
pc.urg = 1;
paciente pc2;
strcpy(pc2.
cpf, "128.452.381-83"); strcpy(pc2.
sintomas, "dor de cabeça"); pc2.idade = 25;
pc2.telefone = 912345678;
pc2.codi = 2;
pc2.urg = 2;
adicionar(&Arv, &pc);
adicionar(&Arv, &pc2);
Mostrar(Arv);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdHlwZWRlZiBzdHJ1Y3QgUGFjaWVudGV7CiAgICBjaGFyIG5vbWVbNTBdOwogICAgY2hhciBjcGZbNTBdOwogICAgY2hhciBzZXhvWzIwXTsKICAgIGNoYXIgc2ludG9tYXNbNTAwXTsKICAgIGludCB0ZWxlZm9uZTsKICAgIGludCBpZGFkZTsKICAgIGludCBjb2RpOwogICAgaW50IHVyZzsKICAgIHN0cnVjdCBQYWNpZW50ZSAqcHJveDsKfXBhY2llbnRlOwoKdHlwZWRlZiBzdHJ1Y3QgQXJ2b3JlewogICAgc3RydWN0IFBhY2llbnRlICpObzsKICAgIHN0cnVjdCBBcnZvcmUgKkVzcTsKICAgIHN0cnVjdCBBcnZvcmUgKkRpcjsKfWFydm9yZTsKCnZvaWQgYWRpY2lvbmFyKGFydm9yZSAqKkFydiwgcGFjaWVudGUgKnBhYyl7CiAgICBhcnZvcmUgKnRlbXAgPSBOVUxMOwogICAgaWYgKCpBcnYgPT0gTlVMTCl7CiAgICAgICAgdGVtcCA9IChhcnZvcmUqKW1hbGxvYyhzaXplb2YoYXJ2b3JlKSk7CiAgICAgICAgdGVtcC0+RXNxID0gTlVMTDsKICAgICAgICB0ZW1wLT5EaXIgPSBOVUxMOwogICAgICAgIHRlbXAtPk5vID0gcGFjOwogICAgICAgICpBcnYgPSB0ZW1wOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYgKHBhYy0+dXJnIDwgKCgqQXJ2KS0+Tm8tPnVyZykpewogICAgICAgICAgICBhZGljaW9uYXIoJigoKkFydiktPkVzcSksIHBhYyk7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGFkaWNpb25hcigmKCgqQXJ2KS0+RGlyKSwgcGFjKTsKICAgICAgICB9CiAgICB9Cn0KCi8vIEVtIE9yZGVtIChEbyBtZW5vciBwcm8gbWFpb3IpCnZvaWQgTW9zdHJhcihhcnZvcmUgKkFydil7CiAgICBpZihBcnYgIT0gTlVMTCl7CiAgICAgICAgTW9zdHJhcihBcnYtPkVzcSk7CiAgICAgICAgcHJpbnRmKCJOb21lOiAlc1xuQ1BGOiAlc1xuU2V4bzogJXNcbklkYWRlOiAlZFxuVGVsZWZvbmU6ICVkXG5TaW50b21hczogJXNcblVyZ2VuY2lhOiAlZFxuQ8OzZGlnbzogJWRcbiIsIEFydi0+Tm8tPm5vbWUsIEFydi0+Tm8tPmNwZiwgQXJ2LT5Oby0+c2V4bywgQXJ2LT5Oby0+aWRhZGUsIEFydi0+Tm8tPnRlbGVmb25lLCBBcnYtPk5vLT5zaW50b21hcywgQXJ2LT5Oby0+dXJnLCBBcnYtPk5vLT5jb2RpKTsKICAgICAgICBNb3N0cmFyKEFydi0+RGlyKTsKICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGFydm9yZSAqQXJ2ID0gTlVMTDsKICAgIHBhY2llbnRlIHBjOwogICAgc3RyY3B5KHBjLm5vbWUsICJDYXJsb3MiKTsKICAgIHN0cmNweShwYy5jcGYsICIxMjcuNDUyLjM4MS04MyIpOwogICAgc3RyY3B5KHBjLnNleG8sICJtIik7CiAgICBzdHJjcHkocGMuc2ludG9tYXMsICJ0b3NzZSIpOwogICAgcGMuaWRhZGUgPSAyODsKICAgIHBjLnRlbGVmb25lID0gMTIzNDU2Nzg7CiAgICBwYy5jb2RpID0gMTsKICAgIHBjLnVyZyA9IDE7CgogICAgcGFjaWVudGUgcGMyOwogICAgc3RyY3B5KHBjMi5ub21lLCAiQW5hIik7CiAgICBzdHJjcHkocGMyLmNwZiwgIjEyOC40NTIuMzgxLTgzIik7CiAgICBzdHJjcHkocGMyLnNleG8sICJmIik7CiAgICBzdHJjcHkocGMyLnNpbnRvbWFzLCAiZG9yIGRlIGNhYmXDp2EiKTsKICAgIHBjMi5pZGFkZSA9IDI1OwogICAgcGMyLnRlbGVmb25lID0gOTEyMzQ1Njc4OwogICAgcGMyLmNvZGkgPSAyOwogICAgcGMyLnVyZyA9IDI7CgogICAgYWRpY2lvbmFyKCZBcnYsICZwYyk7CiAgICBhZGljaW9uYXIoJkFydiwgJnBjMik7CiAgICBNb3N0cmFyKEFydik7CgogICAgcmV0dXJuIDA7Cn0K