Sequence_Stack

public class Sequence_Stack<T> {


/**
* @author user
* @param args
*/
//数组默认长度
private int DEFAULT_SIZE = 10;
private int capacity;//定义数组容量
private int size;//大小
private T element;//元素
private Object[] data;//保存元素的数组
//以默认数组长度创建 空顺序栈
public Sequence_Stack(){
capacity = DEFAULT_SIZE;
data = new Object[capacity];
}
//以一个指定元素初始化顺序栈
public Sequence_Stack(T element){
this();//调用 无参构造器
this.element = element;
size++;
}
/***
* 以指定长度创建顺序栈
*/
public Sequence_Stack(T element,int i){
this.capacity = i;
data = new Object[capacity];
// this.element = element;
data[0] = element;
size++;
}
//压栈 存入数据
public void push(T element){
//先判断 压栈后 size 是否大于 容量
ensureCapacity(size+1);
data[size++] = element;
}
private void ensureCapacity(int size) {
// TODO Auto-generated method stub
if(size>capacity){
//扩大一倍
capacity<<=1;
data = Arrays.copyOf(data, capacity);
}
}

//出栈
public T pop(){
//return (T) data[size--]; 要对最后一个元素置空
T value = (T) data[size-1];
data[--size] =  null;
return value;
}
//返回栈顶元素
public T peek(){
return (T) data[size-1];
}
//获取栈大小
public int size(){
return size;
}
//判断是否为空
public boolean isEmpty(){
return size==0;
}

//清空
public void clear(){
Arrays.fill(data, null);
size=0;
}
public String toString(){
if(size==0){
return "[]";
}else{
StringBuffer sb = new StringBuffer();
sb.append("[");
//遍历数组
for(int i=size-1;i>=0;i--){
sb.append(data[i]+",");
}
int len = data.length;
sb.delete(len-1, len).append("]").toString();
return sb.toString();
}

}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试用例如下: 1. 测试栈的初始化功能。 sequence_stack st; init(&st); 2. 测试判断栈是否为空的功能。这里需要测试两种情况:栈为空和栈不为空。 sequence_stack st; init(&st); int result1 = empty(st); // 期望结果为1(空栈) push(&st, 10); int result2 = empty(st); // 期望结果为0(非空栈) 3. 测试读取栈顶元素的功能。这里需要测试两种情况:栈为空和栈不为空。 sequence_stack st; init(&st); int result1 = read(st); // 期望结果为0(空栈) push(&st, 10); int result2 = read(st); // 期望结果为10 4. 测试栈的插入(进栈)操作。这里需要测试插入多个元素的情况。 sequence_stack st; init(&st); push(&st, 10); push(&st, 20); push(&st, 30); int result = read(st); // 期望结果为30 5. 测试栈的删除(出栈)操作。这里需要测试删除多个元素的情况。 sequence_stack st; init(&st); push(&st, 10); push(&st, 20); push(&st, 30); pop(&st); pop(&st); int result = read(st); // 期望结果为10 6. 测试表达式括号是否匹配的功能。这里需要测试多种情况,包括匹配的情况、不匹配的情况等。 char c1[] = "()"; char c2[] = "()[]{}"; char c3[] = "([{}])"; char c4[] = "([{]})"; int result1 = match_kuohao(c1); // 期望结果为1(匹配) int result2 = match_kuohao(c2); // 期望结果为1(匹配) int result3 = match_kuohao(c3); // 期望结果为1(匹配) int result4 = match_kuohao(c4); // 期望结果为0(不匹配)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值