|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。js|递回|算法|页面<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<html>
<head>
<title></title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312";>
<scriptlanguage="JavaScript">
<!--
functionMM_goToURL(){//v3.0
vari,args=MM_goToURL.arguments;document.MM_returnValue=false;
for(i=0;i<(args.length-1);i+=2)eval(args[i]+".location="+args[i+1]+"");
}
//-->
</script>
<linkhref="CSS/ip.css"rel="stylesheet"type="text/css">
</head>
<bodytopmargin="0"leftmargin="0"marginheight="0"marginwidth="0"bgcolor="#FFFFFF">
<tableborder="0"cellspacing="0"cellpadding="0"height="80%">
<tr><td>
</td>
</tr>
<trvalign="top">
<tdheight="223"><spanid="menus"></span>
<spanid="view"></span>
</td>
</tr>
<trvalign="bottom">
<td></td>
</tr>
</table>
<divalign="right"></div>
</body>
<script>
/**
*机关树,初值为0
*/
functionisbrother()
{
varis=flase;
}
functiontree(n){
varid=newArray("bar","pad","","","");
if(n==0){//初始化变量
n=1;
i=0;
s="";
}
s+="<tableborder=0cellspacing=0cellpadding=0>";
for(;i<tree_ar.length-1;i++){
vark=(n>=tree_ar[i+1][0])?0:1;
if(tree_ar[i][2]==false)
{
id[2]="";
}
s+="<trid="+id[k]+"value="+i+"><td>"+id[k+2]+"</td><td>"+tree_ar[i][1]+"</td></tr>";////机关节点,注重这里的自界说属性value。感化是简化机关节点的形貌,共享参数数组信息。
if(n>tree_ar[i+1][0]){//若希冀条理年夜于以后条理,停止本条理前往上一条理。
s+="</td></tr></table>";
returntree_ar[i+1][0];
}
if(n<tree_ar[i+1][0]){//若希冀条理小于以后条理,递回进进下一条理。
s+="<trstyle=display:none><td";
if(tree_ar[i][2]==true)
{//假如有下个兄弟节点,则画兄弟节点间的连线
s+="background=images/line.gifborder=0align=absmiddle";
}
s+="></td><td>";
varm=tree(tree_ar[++i][0]);
s+="</td></tr>";
if(m<n){//当递回前往值小于以后条理希冀值时,将发生一连的前往举措
s+="</table>";
returnm;
}
}
}
s+="</table>";
returns;
}
</script>
<scriptfor=padevent=onclick>
//分枝节点的点击呼应
v=this.parentElement.rows[this.rowIndex+1].style;
if(v.display==block){
v.display=none;
this.cells[0].innerHTML="";
view.innerHTML="";//自行修正为参数数组界说的闭合举措
}else{
v.display=block;
this.cells[0].innerHTML="";
//view.innerHTML="<b>"+tree_ar[this.value][1]+"</b>";//自行修正为参数数组界说的睁开举措
}
/**
*以下代码用于封闭已睁开的其他分枝
*如需自行封闭睁开的分枝则从这里间接前往或删往这段代码
*/
if(!tree_ar[this.value].type)//如该节点为初次进进,则纪录地点条理信息
genTreeInfo(this);
varn=1*this.value+1;
for(i=n;i<tree_ar.length-1;i++){//封闭分列在以后节点以后的树
if(tree_ar[i].type=="pad"){
tree_ar[i].obj2.style.display=none;
tree_ar[i].obj1.cells[0].innerHTML="";
}
}
while(tree_ar[--n][0]>1);//回溯到以后树的出发点
while(--n>=0)//封闭分列在以后树的出发点之前的树
if(tree_ar[n].type=="pad"){
tree_ar[n].obj2.style.display=none;
tree_ar[n].obj1.cells[0].innerHTML="";
}
/**纪录条理信息,用以简化遍历树时的庞大的节点形貌**/
functiongenTreeInfo(o){
varel=o.parentElement;
for(vari=0;i<el.rows.length;i++){
if(el.rows[i].id!=""){
tree_ar[el.rows[i].value].type=el.rows[i].id;
}
if(el.rows[i].id=="pad"){
tree_ar[el.rows[i].value].obj1=el.rows[i];
tree_ar[el.rows[i].value].obj2=el.rows[i+1];
}
}
}
</script>
<scriptfor=barevent=onclick>
//无分枝节点的点击呼应
//view.innerHTML="<b>"+tree_ar[this.value][1]+"</b>";////自行修正为参数数组界说的点击举措
//自行修正为参数数组界说的点击举措
</script>
<scriptfor=barevent=onclick>
//无分枝节点的点击呼应
//view.innerHTML="<b>"+tree_ar[this.value][1]+"</b>";//uFFFDuFFFDuFFFDsuFFFDCuFFFDuFFFD?uFFFDQuFFFDuFFFDuFFFDuFFFD?uFFFDuFFFD?uFFFDIuFFFD_??uFFFDuFFFD
</script>
<script>
/**
*基础参数数组,依据详细使用自行扩大
*数据可较复杂的由服务器端供应
*列1:节点条理
*列2:节点题目
*列3:有没有下个兄弟节点
*其他自行扩大
*/
tree_ar=newArray(
<%
FileTreetree=newFileTree();
Stringarray=tree.showFileTree("E:");
%>
<%=array%>
newArray(1,"",false)//为简化停止判别附加的空数据项
);
/***创立菜单***/
menus.innerHTML=tree(0);
</script>
</html>
importjava.io.File;
publicclassFileTree{
publicFileTree(){
}
/**
*
*天生文件目次树
*
*@parampath
*目次路径
*@return前往jsp页面所需的目次数组(JavaScript数组)
*
*/
/*
*有没有兄弟节点
*/
privatebooleanhasNexetBrother=false;
/*
*节点条理
*/
privateintindex=1;
publicStringshowFileTree(Stringpath){
Strings="";
Filedir=newFile(path);
if(dir!=null&&dir.isDirectory()){
StringabsolutePath=dir.getAbsolutePath();
absolutePath=absolutePath.replaceAll("\","\\");//对的处置,在JSP参数传送时和空格会呈现毛病
absolutePath=absolutePath.replaceAll("","@");//对空格的处置,这时候用@替换
s+="newArray("+index+",<ahref=fileList.jsp?path="
+absolutePath+"\target=mainFrame>"+dir.getName()
+"</a>,"+hasNexetBrother+"),";
hasNexetBrother=false;
index++;
File[]dirs=dir.listFiles();
java.util.Listlist=newjava.util.ArrayList();
for(inti=0;i<dirs.length;i++){
if(dirs[i].isDirectory()){//往除文件.失掉文件夹列表
list.add(dirs[i]);
}
}
for(inti=0;i<list.size();i++){
if(i!=list.size()-1)
hasNexetBrother=true;
Stringdirpath=((File)list.get(i)).getAbsolutePath();
s+=showFileTree(dirpath);//对子文件夹递回处置
}
index--;
}
returns;
}
}
你对java乐观有点盲目。java的关键就是在服务器上表现优异,而且它提供了整个开发所需要的工具。应该是说,看哪天。net有没有机会赶上java。 |
|