没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
根据数据库表中记录自动构造一棵结构树的一种高效算法
www.lvyin.net 2002-4-19 绿荫网络
一、前言:
在好多场合下,都存在着很多像树一样的结构;如公司机构、军队职务、图书管理等,
甚至好多论坛上的信息都是以树形的结构显示出来的。由于这样的结构存在无限子类、无
限级别、信息多变的特点。无法由一开始就设计好一种结构,而往往这种结构是随时都可
能改变的。这样,就需要有一种可以根据一批信息自动构造一棵结构树的算法。
当今绝大多数信息是以数据库的形式保存起来的,下面我们就以数据库为操作源,以
Delphi 为编程工具,介绍一种根据数据库表中记录自动构造一棵结构树的一种高效算法。
二、数据库表结构设计:
数据库表的结构设计关系到构造树的难易程序与速度,所以数据库表结构一定要设计合
理,巧妙!在本算法中,数据库表结构关系到构造树的有三个字段,它们分别是:
字 段 名 代 表 意 义 字段类型 其它说明
NodeID 结点自身 ID 号 自动编号 关键字
NodeName 结点名称 字符类型 不能为空
PNodeID 父结点 ID 号 长整形 不能为空,默认值为 0 表示为一级结点
当然还可以加入其它字段作为实际意义的信息记录,不过构造一棵结构树只需要用到上
面所提到的三个字段。下面是一张数据库表的例子:
三、数据结构设计:
同样,为了使构造好的一棵树中每一个结点都能对应到实际表中的相应记录(即当选择
某结点时,表指针能自动指向相应的记录),必须设计一个结构体;结构体如下( Pascal
描述):
// 定义树结点与数据库表记录对应的结构体
type
PNode = ^TNode;
TNode = record
FID:integer; // 记录的 ID 号
FBM:TBookMark; // 定位记录的指针(书签)
end;
四、算法:
1、首先,数据库必须打开,使用一个查询得到要构造树的表,得到的表已经按一定的规
则排好序;其 SQL 执行语句如下:
资源评论
tinggo123
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功