• 5679阅读
  • 5回复

[提问]请教一个用QPainter画二叉树的算法,,,,, [复制链接]

上一主题 下一主题
离线zylzysl
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-19
树的的结构体是这样的,
typedef struct BiTreeNode{
        int   key;
        struct BiTreeNode* lchild, *rchild;
} BiTreeNode, *BiTree;

我希望的效果是,对于任意一个不为空的树 BiTree T, 用一个函数在窗口中画出二叉图,就像这个样子

我想了很久 没有什么好的办法, 希望Qter们帮帮忙···········谢谢了
离线zylzysl

只看该作者 1楼 发表于: 2013-12-19
自己顶顶
离线zylzysl

只看该作者 2楼 发表于: 2013-12-19
```````````````````
离线彩阳

只看该作者 3楼 发表于: 2013-12-19
制作一个递归的函数进行绘制:
void drawSubTree( BiTreeNode* pNode, QPainter* pPainter,  int gap )
{
  drawCircle( pPainter, gap );
  if ( pNode->lchild != Q_NULLPTR )
  {
    drawSubTree( pNode->lchild, gap / 2 );
  }
  if ( pNode->rchild != Q_NULLPTR )
  {
    drawSubTree( pNode->rchild, gap / 2 );
  }
}
上海Qt开发联盟,热忱地欢迎你的加入!
离线zylzysl

只看该作者 4楼 发表于: 2013-12-20
回 3楼(彩阳) 的帖子
好的,谢谢,我去试试
离线zylzysl

只看该作者 5楼 发表于: 2013-12-20
自己顶顶
快速回复
限100 字节
 
上一个 下一个