/* tbtree0.c CCMATH mathematics library source code.
*
* Copyright (C) 2000 Daniel A. Atkinson All rights reserved.
* This code may be redistributed under the terms of the GNU library
* public license (LGPL). ( See the lgpl.license file for details.)
* ------------------------------------------------------------------------
*/
/*
Test: btins tsearch tsort
Uses: prtree
Input file: ttree.dat
*/
#include "ccmath.h"
struct trec {char key[2]; char rec[2];} tstor[128];
struct tnode head,*arp[28];
void main(int na,char **av)
{ struct tnode *hd= &head,*pt;
int n; char sky[2]; FILE *fp;
if(na!=2){ printf("para: input_file\n"); exit(-1);}
fp=fopen(*++av,"r");
printf(" Test of Binary Tree Functions\n");
/* initialize tree head */
strcpy(tstor[0].key,"0");
hd->key=tstor[0].key; hd->pl=hd->pr=NULL;
/* insert tree nodes */
for(n=1; fscanf(fp,"%s",tstor[n].key)!=EOF ;++n){
pt=btins(tstor[n].key,hd);
}
pt=hd->pr; prtree(pt,5);
printf(" left branch\n"); prtree(pt->pl,5);
/* search for node with key K */
pt=tsearch("K",hd); printf(" K-branch\n"); prtree(pt,5);
/* search for keys and report success or failure */
for(n=0; n<2 ;++n){
if(n) strcpy(sky,"a"); else strcpy(sky,"A");
pt=tsearch(sky,hd); printf(" %s : ",sky);
if(pt!=NULL) printf("%s found\n",pt->key); else printf("absent\n");
}
}
/* Test output
Test of Binary Tree Functions
X
T Z
B U Y
A F V
C K
E H M
left branch
T
B U
A F V
C K
E H M
D G J L Q
K-branch
K
H M
G J L Q
I P R
O S
A : A found
a : absent
*/
syntax highlighted by Code2HTML, v. 0.9.1