实现树状结构的两种方法1.递归法递归是指在函数中显式的调用它自身.利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显).适用与写入数据量大,树的结构复杂的情况下.数据结构(以mysql为例) 代码:--------------------------------------------------------------------------------CREATE TABLE `tree1` ( `id` tinyint(3) unsigned
<?php /** * 通用的树型类,可以生成任何树型结构 */ class tree { /** * 生成树型结构所需要的2维数组 * @var array */ var $arr = array(); /** * 生成树型结构所需修饰符号,可以换成图片 * @var array */ var $icon = array('│','├','└'); /** * @access private */ var $ret = ''; /** * 构造函数,初始化类 * @param array 2维
排序|排序 在BBS的编写中,经常有人问怎样实现树状结构?一个比较不负责任的回答是:使用递归算法.当然,递归是一个可行的办法(二叉树的历遍也好象只能使用递归算法),但对于BBS来说,这样做势必要进行大量的Sql查询(虽然可以使用存储过程来做,但要从根本上加快速度,则应该考虑更快的算法). 下面给出一个可行的彻底屏弃递的实现树状结构的算法. 下面给出另一种使用"使用中值排序基数法"实现树状结构: 一.主要思想:增加一个排序基数字段ordernum,回复同一根贴的贴子中插入贴子时,排序
css 索易电子杂志大多采用树状目录,当鼠标点击主目录时,展开子目录:当再次点击主目录时,则关闭子目录.显得简捷明快,朴实无华.制作这种树状目录的方法较多,最近我利用CSS能方便地控制对象的"显 示"和"隐藏"属性原理,也制作一个,我感到用CSS制作这样的树状目录,方法简单,代码也比较少,所以把它写出来,给网友们共亨,以便在需要的时候也可动手做一个.先看下面的示例:当用鼠标在主目录上点一下,就下拉出相应的子目录,再点一下,又恢复原状,其效果与 索易电子杂志上的目录效
树状结构的存储与管理,是每一个在关系型数据库平台上工作的程序员早晚都要遇到的问题.说大不大,怎么都能解决,说小不小,处理不好,有的是麻烦等着你.仁者见仁,智者见智,公说公有理,婆说婆有理(谁用机箱砸我?机箱是个好东西,乱丢会摔坏硬盘的,你看我话没说完你又把显示器丢了--),咳咳,好吧,闲话少说,我们从最大路的处理风格谈一谈吧.这里面的大部分内容并非我的独创,从很久很久以前,数据库程序员们就这样做啦. 树状表的结构化表达 在一切开始前,我们先就树状表的表示方式达成一个共识.在关系型数据库中
由于工作原因,涉及到一个树状存放记录的表,要求程序中把树状表全部展开,并输出相应的数据內容.由于涉及到此种操作的地方很多,比如网络上的\\\"论坛"就是典型的采用树状存放记录的表,特此整理出来与大家分享.在很多资料都有介绍展开树状记录的程序,但是很多是采用递归的方法.我們知道,递归的方法逻辑比较简单,实际操作起来比较容易.但是递归有一个最大的缺点就是占用资源太多,速度太慢.如果在互联网的"论坛"上采用此种方法,在表记录很多的情况下将是一个非常严重的问题.下面的程序在
程序 1.递归法 递归是指在函数中显式的调用它自身. 利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显).适用与写入数据量大,树的结构复杂的情况下. 数据结构(以mysql为例) 代码: CREATE TABLE `tree1` ( `id` tinyint(3) unsigned NOT NULL auto_increment, `parentid` tinyint(3) unsigned NOT NULL default '0', `topi
排序 以下是建立库结构的Sql语句(以一个简单的树状留言薄为例): if exists(select * from sysobjects where ID = object_id("guestbook")) drop table guestbookgodrop table guestbookcreate table guestbook( lybid int identity(1,1), guestname varchar(40) NOT NULL, guestitle varc
排序 实现原理:以一排序字段(字符型实现排序),该字段的实际长度即为回复深度(用一位字符代表一层深度时). 所受限制:回复深度只受排序串定义长度的限制(有点象空间换深度),每贴回复数(包括根贴和子贴)为30左右(当sql server使用Dictionary order,case-insensitive排序方式,即不区分字母大小写时),如果sql server使用Binary orders排序方式时受限为127(255?). 改进方法:如果觉得不够用,可以使用多位字符对应一个