在WPF的Canvas上绘制二叉树

二叉树是数据结构最重要的部分之一,数据结构据说是学习编程的基础课程,虽然好像和平时工作关系不大,但面试时面试官很喜欢出点数据结构算法来刁难你。

一直以来,写算法好像只是C/C++的事,一串串数字输出在冰冷的手术台,sorry,是控制台上。但中间的过程,只能画在草纸上,或者像下盲棋一样用用脑汁算。其实我们多数人并不需要到高手的那个境界,只要会走法,能走两步就够了,所以有一个棋盘的话会对我们练习帮助很大。

下面是我在WPF窗口上画的一个二叉树:

image

每个节点都是一个Canvas,里面又包含一个Ellipse和TextBlock。

节点通过Margin属性来定位。在递归显示时,先计算子节点的Margin,然后再通过父节点和子节点的Margin算出连线的起点和终点坐标。需要注意的是,从上到下,树枝叉的角度要依次递减,不然可能会出现节点重叠或树枝相交。

虽然刚开始接触WPF,不过看起来不算太难,呵呵。

下载地址请点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值