Manipulando árvores.
Publicado por sérgio 02/03/2007
[ Hits: 5.840 ]
Esse script serve para manipulação básica de árvores, com operações como criar nó, criar a árvore em si, inserir valores e achar valores na árvore.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct arv{
int chave;
struct arv *esq, *dir, *pai;
}Tarv;
Tarv *cn(){
Tarv *p;
p=malloc(sizeof(Tarv));
p->esq=NULL;
p->dir=NULL;
return p;
}
Tarv *ca(int x){
Tarv *p;
p=cn();
p->chave=x;
return p;
}
int *ins(int x,Tarv *p){
Tarv *q;
q=ca(x);
if(x<p->chave){
if (p->esq!=NULL){
printf("Nao foi possivel fazer a insersaoa\n");
}
else{
p->esq=q;
printf("a");
p=p->esq;
}
}
else{
if (x>p->chave){
if(p->dir!=NULL){
printf("Nao foi possivel fazer a insersaob\n");
}
else{
p->dir=q;
printf("b\n");
p=p->dir;
}
}
else{
printf("O valor que voce colocou eh igual ao valor da raiz, vtnc\n");
}
}
}
int acha(Tarv *p,int x){
Tarv *z;
int t;
z=p;
while(z->chave!=NULL){
if (z->chave==x){
printf("Esse numero existe na arvore!");
return 0;
}
else{
if(z->chave>x){
z=z->esq;
}
else{
z=z->dir;
}
}
}
}
int altura(Tarv *r,int x){
int aux=0;
while(r->chave!=x){
if(r->chave<x){
r=r->dir;
aux++;
}
else{
r=r->esq;
aux++;
}
printf("%d\n",aux);
}
}
int main(){
Tarv *p;
int abc;
p=malloc(sizeof(Tarv));
p->esq=NULL;
p->dir=NULL;
int a=2,b=3,c=4;
p=ca(2);
ins(1,p);
ins(3,p);
acha(p,1);
abc=primeira(p);
altura(p,1);
}
Script em C++ de uma Lista Estática.
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









