利用二叉排序树排序

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:19:36
随便输入一组数 回车结束 完成排序

本二叉树创建规则, 小于当前节点的数插入当前节点的左子树,大于当前节点的插入右子树,依次类推直到找到对应的节点。
打印的时候,通过递归的方法调用遍历函数,按照先左子树,再本节点,再右子树的方法,从而保证打印出来的数列是排序好了的。

程序运行实际效果:
Input number serials, seperated by white spaces!
1 12312 7 -123 +34 99 100 99 101 [然后回车]
After sorting:
-123 1 7 34 99 100 101 12312

#include <stdio.h>
#include <string.h>

#define MAX_STRING_SIZE (4096)
#define MAX_NODES (100)

typedef struct struc_BTREE_NODE
{
int value;
struct struc_BTREE_NODE * parent;
struct struc_BTREE_NODE * left;
struct struc_BTREE_NODE * right;
} BTREE_NODE;

BTREE_NODE nodes[MAX_NODES];
BTREE_NODE * pTreeTop = NULL;

BTREE_NODE * alloc_node(value)
{
static int occupied_nodes = 0;
BTREE_NODE * pNode;
if(occupied_nodes < MAX_NODES)
{
pNode = &nodes[occupied_nodes++];
pNode->value = value;
pN