Manipulando árvores.
Publicado por sérgio 02/03/2007
[ Hits: 5.822 ]
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); }
Checkcred - Checagem de créditos.
Calculadora elementar com ponto flutuante
Vários pacotes de ping disparados contra o host
Nenhum comentário foi encontrado.
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
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Falha com leitor de digitais no Ubuntu: sugestões? (0)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (1)