效果图
头文件
#include<easyx.h>
#include<conio.h>
数据结构
二叉链表
typedef struct BSTNode {
int key;
BSTNode* lchild, * rchild;
}BSTNode,*BSTree;//二叉树结点
形状控制常量
//常量
const int WIN_X = 1000;
const int WIN_Y = 600;
const int UI_FAR_X = 220;
const int UI_FAR_Y = 20;
函数
void PrintTree(BSTree tree, int x, int y, float xFar, float yFar)
{
if (tree->lchild)
{
line(x, y, x - xFar, y + yFar);
PrintTree(tree->lchild, x - xFar, y + yFar, xFar / 2, yFar * 1.2);
}
if (tree)
{
setfillcolor(BLUE);
fillcircle(x, y, 10);
TCHAR num[10];
_stprintf_s(num, _T("%d"), tree->key);
outtextxy(x - 5, y - 5, num);
}
if (tree->rchild)
{
line(x, y, x + xFar, y + yFar);
PrintTree(tree->rchild, x + xFar, y + yFar, xFar / 2, yFar * 1.2);
}
}
void PrintUITree(BSTree tree)
{
initgraph(WIN_X, WIN_Y);
setbkcolor(CYAN);
cleardevice();
int flag = 0;
PrintTree(tree, WIN_X / 2, 10, UI_FAR_X, UI_FAR_Y);
}
调用
PrintUITree(tree);
完整源码后期更新,敬请关注