java数据结构之堆栈思想(数组)
很多时候数组存在着很大的缺限,首先必须先设置数组的长度,当设定了之后,就无法改变了。
下来是一种数组长度动态变化的一种方法
package com.yz.mystack;
public class Stack {
Object[] datas;
Integer n=0;
Integer N=1;
public Stack(){
datas=new Object[N];
}
public void push(Object data){
if(n>=N){
N+=2;
Object[] temps=datas;
datas=new Object[N];
for(int i=0;i<temps.length;i++){
datas[i]=temps[i];
}
}
datas[n++]=data;
}
public Object peek(){
return datas[n-1];
}
public Object pop(){
if(--n>=0){
return datas[n];
}
return 0;
}
public static void main(String[] args){
Stack stack=new Stack();
stack.push("aa");
stack.push("bb");
stack.push("cc");
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
相关文档:
垃圾收集几乎是每个开发人员都喜爱的一个 Java™ 平台特性,它简化了开发,消除了所有种类的潜在代码错误。可尽管垃圾收集一般来说可以让您无需进行资源管理,有时候您还是必须自己进行一些内务处理。
显式地释放资源
Java 程序中使用的绝大多数资源都是对象,垃圾收集在清理对象方面做得很好。因此,您可以使用任 ......
在java中貌似不能同时创建目录和文件,需要分布创建,即不能在创建目录的时候,同时创建该目录下的文件,如果要创建的话,需要分两步,下边是创建的代码Java代码 try { String path = "D:/test ......
数据结构和算法
冒泡:每次比较都可找出最大或最小的,有序的在最右边
选择排序:有序的在最左边
插入排序:速度比冒泡快一倍,比选择也快。
递归
调用自身
汉诺塔问题:
/**
* @汉诺塔的问题
*/
......
Java代码:
import java.util.regex.*;
public final class RegExpValidator
{
/**
* 验证邮箱
* @param 待验证的字符串
* @return 如果是符合的字符串,返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isEmail(String str)
{
......
建立节点类(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() {
......