java数据结构之堆栈
建立节点类(Node.java)
package com.yz.mystack;
public class Node {
Object data;
Node next;
public Node(Object data){
this.data=data;
next=null;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
建立链表(Link.java)
package com.yz.mystack;
public class Link {
Node head;
public Link(){
head=new Node(null);
}
public void addNode(Node node){
Node p=head;
node.setNext(p.getNext());
p.setNext(node);
}
public void delNode(){
if(!isEmploy()){
head.setNext(head.getNext().getNext());
}
}
public Node gettop(){
return head.getNext();
}
public Boolean isEmploy(){
return head.getNext()==null;
}
public void display(){
Node p=head;
while(true){
p=p.getNext();
if(p!=null){
System.out.println(p.getData());
}else{
break;
}
}
}
}
建立堆栈
package com.yz.mystack;
public class Stack {
Link link;
public Stack(){
link=new Link();
}
public void push(Object data){
link.addNode(new Node(data));
}
public Object peek(){
return link.gettop().getData();
}
public Object pop(){
Object data=peek();
link.delNode();
return data;
}
}
测试(Man.java)
package com.yz.mystack;
public class Man {
public static void main(String[] args){
Stack stack=new Stack();
stack.push("aa");
stack.push("bb");
stack.push("cc");
System.out.println(stack.peek());
System.out.println(stack.peek());
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
相关文档:
垃圾收集几乎是每个开发人员都喜爱的一个 Java™ 平台特性,它简化了开发,消除了所有种类的潜在代码错误。可尽管垃圾收集一般来说可以让您无需进行资源管理,有时候您还是必须自己进行一些内务处理。
显式地释放资源
Java 程序中使用的绝大多数资源都是对象,垃圾收集在清理对象方面做得很好。因此,您可以使用任 ......
1)静态变量本身不会被回收
2)静态变量所引用的对象是可以回收的。
第一点大家应该没有疑问,下面我证明第2点:
看下面的例子及注释。自己可以运行试一下, 注意加上-verbose:gc参数
java -verbose:gc TestStaticGc
// TestStaticGc.java
public class TestStaticGc {
& ......
使用 ANT 开发 Java 程序
常听大家讨论哪个 Java 开发工具比较好,JBuilder,Virtual Cafe ?
今天介绍一个简单易用的 Java 开发,编译,集成,测试工具:Jakarta Ant
他被称为 java 环境里的 make (make 在 C 程序开发 ......
数据结构和算法
冒泡:每次比较都可找出最大或最小的,有序的在最右边
选择排序:有序的在最左边
插入排序:速度比冒泡快一倍,比选择也快。
递归
调用自身
汉诺塔问题:
/**
* @汉诺塔的问题
*/
......
Java 中内部动态类(没有static)关键字和内部静态类的就在于内部动态类不能定义静态变量或是静态方法,如果要在内部类中使用静态成员,必须将类声明为静态类. 内部类中的静态方法可以访问外部类的静态方法和本类中的静态方法或成员, 非静态方法可以访问其他所有的方法或成员 ......