动机: 最初想起做二叉树是因为需要做一个公司结构图。 以前的做法都是直接用图象软件画出来一个图片。很好看,但每次有变动后都需要重新画一个新的。 另一方面,网页上对线条的显示、布局相当局限。根据动态生成的数据进行排版、定位都相当困难, 而且在美观上也差强人意。 做了各种尝试以后,决定用XML+XSL作数据运算; 用VML来美化线条,用JAVASCRIPT来给对象定位。材料: XML卷之结构树图有2个文件:flow2.xml 和 flow2.xsl 效果: 浏览这里 讲解: 二叉树思路(1)<html xmlns:v="urn:schemas-microsoft-com:vml"><STYLE>v:* { BEHAVIOR: url(#default#VML) } <...
xml没有递增变量的标准方法一旦定义了一个变量,他就不能改变,这相当于java中的final字段不过在一些情况中结合模板的递归方法可以实现类似的结果,假如xml文件为familyTree.xml<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="familyTree.xslt"?><person name="Otto"><person name="Sandra"><person name="Lichao"><person name="Zhangsan"/></person><person name="Eric"><person name="HaLi"/></person><person name=&quo...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> DSTree </TITLE><META NAME="Author" CONTENT="sTarsjz@hotmail.com" ><style>body,td{font:12px verdana}#treeBox{background-color:#fffffa;}#treeBox .ec{margin:0 5 0 5;}#treeBox .hasItems{font-weight:bold;height:20px;padding:3 6 0 6;margin:2px;cursor:hand;color:#555555;border:1px&...
在WEB页面中如果想使用树形控件的话,往往会有些麻烦,有时甚至要自己写代码来达到用树形列表显示数据的目的。在asp.net中,我们可以很方便地使用由微软提供的Internet Exploer Web Controls控件来实现树形列表。在微软提供的这套Internet Exploere Web Controls控件集合中,包括有MultiPage,TabStrip,TOOLbar,Treeview控件。在这篇文章中,我们来看在ASP.net中如何使用Treeview控件和XML来实现树形列表。
微软的这套控件可以在http://asp.net/IEWebControls/Download.aspx?tabindex=0&tabid=1中下载,下载后运行setup安装就可以了。现在我们来试下用Treeview控件做个简单的例子。
在vs...
在此我不想讨论其他实现方法的利与弊。
既然是使用字段排序,那么我们便设一个名为order的字段。问题是,在这里是使用整数还是使用浮点数类型呢?考虑到会有在两个连续order值中间插入新值的可能,自然是需要使用浮点类型了。
建一个menus表,我们还需要以下字段:
id : 类别编号
mainid : 主分类编号,但不作具体分类使用。如果在树型论坛里,它代表的是主题id
parentid : 父类编号
level : 类别级别,作用其实是方便显示的时候作其他处理
info : 类别名称等。
由此可以得到menus的表结构:
以下是SQL代码:【复制代码】 CREATE TABLE `menus` (
`id` INT( 10 ) UNSIGNED NOT NULL AUTO_IN...
功能描述: 根据原二维数组可以转换成类似树的二维数组,也可转换为真实的树型数组,可以随意截取一颗树,提供添加结点和删除结点的方法,并提供打印到HTML的select控件的方法
<?php class PHPTree { /*** * @project PHPTree Program Demo * @license GPL * @author 勾伯今 trooman@sina.com, somyth@gmail.com * @package &nb...
package io; import java.io.*; public class DocTree { File root = null; public DocTree(File f){ this.root = f; } public void showTree(File root, int depth){ drawFile(root, depth); if(!root.isFile()){ File[] files = root.listFiles(); if(files!=null&&files.length!=1){ for(int i=0; i<files.length; i++){ showTree(files[i], depth+1); } } } } public void drawFile(File f, int depth){ for(int i=1; i<depth; i++){ System.out.print("│ "); } System.out.print("├─"); if(f.isFile()){ System.out.print(f.getName()); } else{ System.out.print("["...
发一个以前写的UI代码吧, 一个可以表现目录树结构的java代码, 当然标题说是实现J2ME中的二级树目录意思是比较适合用在J2ME方面,因为J2ME没有提供这种UI组件形式,但实际应用开发中,这类界面用途很广。 下面我简单介绍一下设计思路。 首先我们要实现树型目录就要定义一个Tree的主干,也就是Tree类,然后在Tree上面安放节点(Node类)。每个节点下面就是分类的内容项目。 这样就是个二级树结构了。在实现上,我们把每个节点下包含的内容称作Member,让Member和Node都属于一种类型,我给它起名叫做Element。 我这样设计有它的一个好处,就是在界面上比较好表现出来,通过看代码就可以发现了。 下面是Element类的实现,我们把...
代码如下,可根据需求衍生出各种格式的输出和使用package test;import java.util.ArrayList;import java.util.List;public class Folder ...{public Folder(String title) ...{this.title = title;}private String title;private List<Folder> children = new ArrayList<Folder>();public void addChild(Folder f) ...{children.add(f);}public List<Folder> getChildren() ...{return children;}public void setChildren(List<Folder> children) ...{this.children = children;}public String getTitle() ...{return title;}public void setTitle(String title) ...{this.title = title;}publi...
本文拟结合POWERBUILDER语言,简述如何实现树型列表动态半透明提示,即鼠标移动到树型列表某一项ITEM时会动态提示,且为类似金山词霸的半透明提示效果。 效果图见: http://blog.csdn.net/images/blog_csdn_net/balloonman2002/17312/r_BALLOON-1.JPG 本文拟分以下四部分论述分三次完成: (一)基本思路 (二)如何获取当前鼠标坐标对应NODE结点信息 (三)半透明效果实现 (四)气泡形状效果实现 一、基本思路 (一)在POWERBUILDER语言中,TREEVIEW控件并不具备如VB等其他语言一样当鼠标未选中NODE时,直接获取当前鼠标对应X、Y坐标下所属NODE结点的方法,VB中可以直接利用H...
树形结构在Windows环境中被普遍应用,它以简捷的界面深受用户喜爱。但在数据库开发中面对层次多、结构复杂的数据,如何快速地构造树形目录呢? 实现关键技术 在PowerBuilder所提供的控件中包含了Treeview控件,但树的具体形成还需用户编写脚本实现,即它的列表项要在程序中动态添加,而这些列表数据通常由用户已录入在数据库中,并作为数据库维护的一项内容。 为了能快速实现数据库的树形结构,我们可以采用编码法,即利用编码表来实现。 编码表的基本字段包括编码和编码名称,其编码规则是以数字、字母的位数来区分不同层次,同一层编码位数相同,层次按位数递增,程序通过判断编码位数来决定所在层数。 例如:第一层...
#include <stdio.h>#include <malloc.h>#include<stdlib.h>typedef char DataType;/*定义DataType类型*/typedef enum {Link,Thread}PointerTag;typedef struct node{DataType data;struct node *lchild, *rchild;/*左右孩子子树*/PointerTag LTag,RTag;}BiThrNode;/*结点类型*/typedef BiThrNode *BiThrTree ;/*二叉树类型*/void CreatBinTree(BiThrTree *T){/*构造二叉链表,注意:输入序列是先序序列*/char ch;if ((ch=getchar())==' ')*T=NULL;else{/*读入非空格*/*T=(BiThrNode *)malloc(sizeof(BiThrNode));/*生成结点*/(*T)->data=ch;(*T)->LTag=Link;(*T)->R...
类别:程序开发 查看:120
更新:2014-05-10
以树型结构列出指定目录里的所有文件,如果你想知道自己某个目录里有哪些子目录和文件,可以调用这个类来查看,很方便的。 <? # 演示的例子: $t = new TreeClimber( "asp" ); //新建物件,设置需要列出的目录:在此为asp目录 echo arrayValuesToString( $t->getFileList( $t->getPath() ), "<BR>\n" ); function arrayValuesToString( $ar, $nl="", $dolast=true ) {//调用函数 $str = ""; reset( $ar ); $size = sizeof( $ar ); $i = 1; while( list( $k, $v ) = each( $ar ) ) { if ( $dolast == false ) { if ( $i < $size ) { $str .= $ar[$k].$nl; } else { $str .= ...
<? //树型目录结构模板程序 //菜单目录库字段说明: //menu_id 菜单项目 id //menu 菜单名称 //menu_grade 菜单等级 1 为主菜单 2 为二级菜单 ........ //menu_superior 上一级菜单 id 号 function my_menu($menu_content,$i,$menu_grade_temp,$menu_superior_temp) { global $PHP_SELF; $temp1=$menu_grade_temp 1; $menu_superior_temp_array=split("/",$menu_superior_temp); for ($t=0;$t<$i;$t ) { $menu_array=split("/",$menu_content[$t]); If(($menu_array[2]==$menu_grade_temp)&&($menu_array[3]==$menu_superior_temp_array[$menu_grade_temp-1])) { for($p=1;$p<=$menu_grade_temp;$p...