Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "arbol.h"
- #include "lista.h"
- void InsertarHojas(TLista *L,TNode *node){
- if (node==NULL)
- return;
- if (node->left==NULL && node->right==NULL && !Lista_EstaEnLista(L,node->elem))
- Lista_InsertarDer(L,node->elem);
- InsertarHojas(L,node->left);
- InsertarHojas(L,node->right);
- }
- void perimetro(TBinaryTree *T){
- TLista L1;
- TLista L2;
- TNode *q=T->root;
- TNodo *r;
- Lista_Crear(&L1);
- Lista_Crear(&L2);
- while (q!=NULL){
- Lista_InsertarDer(&L1,q->elem);
- q=q->left;
- }
- InsertarHojas(&L1,T->root);
- q=T->root;
- while (q!=NULL){
- Lista_InsertarIzq(&L2,q->elem);
- q=q->right;
- }
- r=L2.inicio;
- while(r!=NULL){
- if (!Lista_EstaEnLista(&L1,r->elem))
- Lista_InsertarDer(&L1,r->elem);
- r=r->sig;
- }
- Lista_Imprimir(L1);
- }
- int main(){
- TBinaryTree T;
- init_tree(&T);
- insert(&T,40);
- insert(&T,20);
- insert(&T,60);
- insert(&T,10);
- insert(&T,30);
- insert(&T,50);
- insert(&T,70);
- insert(&T,5);
- insert(&T,15);
- insert(&T,25);
- insert(&T,35);
- insert(&T,45);
- insert(&T,55);
- insert(&T,65);
- insert(&T,75);
- perimetro(&T);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment