print.h

来自「算法设计的动态规划中的最优二叉搜索树问题」· C头文件 代码 · 共 49 行

H
49
字号
#include "conio.h"
#include "printq.h"
#include "tnode.h"

typedef struct
{
	TNode *ptr;
	int xindent,ylevel;
}PDataType;

void PrintTree(TNode *root,int screenwidth)
{
	int level=1,offset=screenwidth/2;
	PDataType p,c;
	PQueue Q;
	if(root==NULL)
		return;
	SetPQueue(&Q,50);
	p.ptr=root;
	p.xindent=offset;
	p.ylevel=level;
	PQInsert(&Q,p);
	while(!PQEmpty(&Q))
	{
		p=PQDelete(&Q);
		gotoxy(p.xindent,p.ylevel);
		cout<<(p.ptr->data);
		if(p.ylevel!=level)
		{
			level++;
			offset=offset/2;
		}
		if(p.ptr->left!=NULL)
		{
			c.ptr=p.ptr->left;
			c.ylevel=p.ylevel+1;
			c.xindent=p.xindent-offset/2;
			PQInsert(&Q,c);
		}
		if(p.ptr->right!=NULL)
		{
			c.ptr=p.ptr->right;
			c.ylevel=p.ylevel+1;
			c.xindent=p.xindent+offset/2;
			PQInsert(&Q,c);
		}
	}
	FreePQueue(&Q);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?