绘制表格

表格

数据结构:

 

表格或者有左右兄弟、或者有上下兄弟但不能同时拥有

父节点的HORV 属性  保存着孩子节点的排列方式

         若 HORV为1,则水平排列  孩子有左右兄弟、且父节点的第一个孩子是最右侧的表格

         若 HORV 为0  则垂直排列  孩子有上下兄弟 且父节点的第一个孩子是最上边的表格


绘制表格_第1张图片


绘制表格_第2张图片


表格划分算法:

    其关键之处在于什么情况下生成兄弟表格,什么情况下生成孩子表格。

 

分析:

1)  初始表格划分时,生成2个孩子表格

2)  父表格的划分方式与此次划分方式相同,则生成兄弟表格

父表格的划分方式与此次划分方式不同,则生成孩子表格

        

比如, 父表格的孩子都是横向划分生成的, 此次划分也是横向划分,则调整此表格,并生成一个兄弟表格。


 

初始化:   画一个初始表格框架

 

划分:     对初始表格逐步进行横竖划分

 

 

DivedeCell(CCell *pCell, Bool  bType)  //对表格pCell进行划分  bType为划分方式—横OR竖

{

   IF(此表格有父框&&此表格在父框中的划分方式与此次划分方式相同)// 都是横向划分或都是竖向划分

      生成一个兄弟表格;

ELSE    // 初始表格 或者 此表格的划分方式与父表格的划分方式不同

      生成两个孩子表格

}

 



你可能感兴趣的:(数据结构,算法,框架)