/* justify.c */
#include "../ETree.h"
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------
left-justify a tree by subtree size
children are linked in ascending order of their subtree size
created -- 96jan11, cca
------------------------------------------------------------
*/
void
ETree_leftJustify (
ETree *etree
) {
/*
---------------
check the input
---------------
*/
if ( etree == NULL || etree->tree == NULL ) {
fprintf(stderr, "\n fatal error in ETree_leftJustify(%p)"
"\n bad input\n", etree) ;
exit(-1) ;
}
Tree_leftJustify(etree->tree) ;
return ; }
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------
left-justify a etree by a metric
children are linked in ascending order of their metric
created -- 96jan11, cca
------------------------------------------------------
*/
void
ETree_leftJustifyI (
ETree *etree,
IV *metricIV
) {
/*
---------------
check the input
---------------
*/
if ( etree == NULL
|| etree->nfront <= 0
|| etree->nvtx <= 0
|| metricIV == NULL
|| IV_size(metricIV) != etree->nfront
|| IV_entries(metricIV) == NULL ) {
fprintf(stderr, "\n fatal error in ETree_leftJustifyI(%p,%p)"
"\n bad input\n", etree, metricIV) ;
exit(-1) ;
}
Tree_leftJustifyI(etree->tree, metricIV) ;
return ; }
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------
left-justify a etree by a metric
children are linked in ascending order of their metric
created -- 96jan11, cca
------------------------------------------------------
*/
void
ETree_leftJustifyD (
ETree *etree,
DV *metricDV
) {
/*
---------------
check the input
---------------
*/
if ( etree == NULL
|| etree->nfront <= 0
|| etree->nvtx <= 0
|| metricDV == NULL
|| DV_size(metricDV) != etree->nfront
|| DV_entries(metricDV) == NULL ) {
fprintf(stderr, "\n fatal error in ETree_leftJustifyD(%p,%p)"
"\n bad input\n", etree, metricDV) ;
exit(-1) ;
}
Tree_leftJustifyD(etree->tree, metricDV) ;
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1