设为首页 加入收藏

TOP

Java笔试题整合 24页word文档贴出来(八)
2014-11-24 02:23:03 来源: 作者: 【 】 浏览:415
Tags:Java 试题 整合 word 文档 出来
某子树的根,所以N(Node)、L(Left subtlee)和R(Right subtree)又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为先根遍历、中根遍历和后根遍历。


遍历算法


1.中序遍历的递归算法定义:


若二叉树非空,则依次执行如下操作:


(1)遍历左子树;


(2)访问根结点;


(3)遍历右子树。



2.先序遍历的递归算法定义:


若二叉树非空,则依次执行如下操作:


(1) 访问根结点;


(2) 遍历左子树;


(3) 遍历右子树。


3.后序遍历得递归算法定义:


若二叉树非空,则依次执行如下操作:


(1)遍历左子树;


(2)遍历右子树;


(3)访问根结点。


4.中序遍历的算法实现


用二叉链表做为存储结构,中序遍历算法可描述为:


void InOrder(BinTree T)


{ //算法里①~⑥是为了说明执行过程加入的标号


① if(T) { // 如果二叉树非空


② InOrder(T->lchild);


③ printf(“%c”,T->data); // 访问结点


④ InOrder(T->rchild);


⑤ }


⑥ } // InOrder


把str1和str2合并成一个新的String [] 并去掉其中重复的部分


String [] str1={“1001″,”1002″,”1003″};


String [] str2={“1001″,”1005″,”1010″,”1003″};


Vector v = new Vector();


for (int i = 0; i < str1.length; i ++) {


if (!v.contains(str1[i])) {


v.add(str1[i]);


}


}


for (int i = 0; i < str2.length; i ++) {


if (!v.contains(str2[i])) {


v.add(str2[i]);


}


}


String[] str1= new String[]{“1001″,”1002″,”1003″};


String[] str2= new String[]{“1001″,”1005″,”1010″,”1003″};


HashMap hp = new HashMap();


for(int i = 0 ; i < str1.length;i++){


hp.put(str1[i],”");


}


for(int i = 0 ; i < str2.length;i++){


hp.put(str2[i],”");


}



import java.util.*;


public class test1{


public static void main(String [] args){


String [] str1={“1001″,”1002″,”1003″};


String [] str2={“1001″,”1005″,”1010″,”1003″};


HashSet sh = new HashSet();


for(int i=0;i

sh.add(str1[i]);


for(int j=0;j

sh.add(str2[j]);


Iterator i =sh.iterator();


while(i.hasNext()){


System.out.println(i.next());


}}}


手机号码


import java.util.regex.Matcher;


import java.util.regex.Pattern;


public class ClassPathResource {


public static boolean isMobileNO(String mobiles){


Pattern p = Pattern.compile(“^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$”);


Matcher m = p.matcher(mobiles);


System.out.println(m.matches()+”—”);


return m.matches();


}


public static void main(String[] args) throws IOException {


System.out.println(ClassPathResource.isMobileNO(“12016155153″));


}}


第二种方法:


import java.util.regex.Matcher;


import java.util.regex.Pattern;


String value=”手机号”;


String regExp = “^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$”;


Pattern p = Pattern.compile(regExp);


Matcher m = p.matcher(value);


return m.find();//Boolean


sturts与jsp结合


struts2中的Action接收表单传递过来的参数有3种方法:


如,登陆表单login.jsp:



用户名:


密 码:




1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数.


这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。


2.把表单传递过来的参数封装成一个类,然后调用其中的属性.


如,把login.jsp页面要传来的参数进行封装


private String username;


private String password;


public String getUsername() {


return username;


}


public void setUsername(String username) {


this.username = username;


}


public String getPassword() {


return password;


}


public void setPassword(String password) {


this.password = password;


}


然后再Action方法中,定义该类的对象就可以了,如


public class loginAction extends ActionSupport{


private Users users;


public Users getUsers(){


return users;


}


public void setUsers(Users users){


this.users=users;


}


/*


传递过来的参数都封装在users中了,用getter方法取值就可以了


*/


}


通过这种方法传值,还必须在jsp页面做一下处理,login.jsp中from1的属性名应该改成这样:


登陆表单login.jsp:



用户名:


密 码:




这种方法,在struts开发中是很常用的一种方法!


3.通过实现ModelDriven接口接收表单数据


首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法


public class loginAction extends ActionSupport implements ModelDriven{


private Users users =new Users();


public Users getModel(){


return users;


}


/*


表单传来的参数封装在users对象中


表单属性名不需要加上引用users对象,直接传参数名


*/


}


hibernate与jdbc优缺点


1.hibernate和jdbc主要区别就是,hibernate先检索缓存中的映射对象( 即hibernate操作的是对

首页 上一页 5 6 7 8 9 下一页 尾页 8/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇什么是预编译 何时需要预编译? 下一篇Oracle数据库面试题汇总

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: