4.3BSD/usr/contrib/spms/src/lib/libtree/test/tree.a

!<arch>
Itree           418431039   968   27    100644  48        `
mar
may
nov
aug
apr
jan
dec
jul
feb
jun
oct
sep
Otree           418431039   968   27    100644  969       `
mar

----------------------------------------

	may
mar

----------------------------------------

		nov
	may
mar

----------------------------------------

		nov
	may
mar
	aug

----------------------------------------

		nov
	may
mar
	aug
		apr

----------------------------------------

		nov
	may
mar
		jan
	aug
		apr

----------------------------------------

		nov
	may
mar
		jan
			dec
	aug
		apr

----------------------------------------

		nov
	may
mar
			jul
		jan
			dec
	aug
		apr

----------------------------------------

		nov
	may
mar
			jul
		jan
				feb
			dec
	aug
		apr

----------------------------------------

		nov
	may
mar
				jun
			jul
		jan
				feb
			dec
	aug
		apr

----------------------------------------

			oct
		nov
	may
mar
				jun
			jul
		jan
				feb
			dec
	aug
		apr

----------------------------------------

				sep
			oct
		nov
	may
mar
				jun
			jul
		jan
				feb
			dec
	aug
		apr

----------------------------------------


Ttree.c         418431039   968   27    100644  948       `
/*
 * tree()
 */
#include <stdio.h>
#include "tree.h"
#include "null.h"

#define KEYSIZE 10

char *PGN = "Ttree";			/* program name */
int level = 0;				/* current level in tree */

main()
{
	TREE *root;			/* root of tree */
	TREE *tree();			/* binary tree search and insert */
	char key[KEYSIZE];		/* input key buffer */
	void inorderprint();		/* print a binary tree inorder */

	root = NULL;
	while (gets(key) != NULL)
		{
		root = tree(root, key);
		inorderprint(root);
		printf("\n----------------------------------------\n\n");
		}
	exit(0);
}



/*
 * Inorderprint prints a binary tree in inorder.
 */
void
inorderprint(p)
	TREE *p;			/* current node pointer */
{
	int i;				/* tree level index */
	void inorderprint();		/* print tree inorder */

	if (p != NULL)
		{
		level++;
		inorderprint(p->right);
		level--;
		for (i = level; i > 0; --i)
			putchar('\t');
		printf("%s\n", p->key);
		level++;
		inorderprint(p->left);
		level--;
		}
}