码迷,mamicode.com
首页 > 编程语言 > 详细

栈表简单实现--数据结构与算法纪录片第二记

时间:2018-11-02 17:58:19      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:esc   bsp   栈的实现   default   date   auth   val   ima   bool   

栈的实现:

  

package linear.stack;

import java.lang.reflect.Array;

/**
* @Description: 栈的实现
* @Auther: Weijie.Zhang
* @Date: 2018/11/2 16:56
*/
public class Stack<T> {
private final static int DEFAULT_SIZE = 10;
private T[] array;
private int count;

public Stack(int size, Class<T> type) {
count = 0;
array = (T[]) Array.newInstance(type, size);
}

public Stack(Class<T> type) {
this(DEFAULT_SIZE, type);
}

//添加元素
public T push(T value) {
array[count] = value;
count++;
return value;
}

//删除元素
public T pop() {
return array[--count];
}

//返回栈顶元素值
public T pick() {
return array[count - 1];
}

//返回栈大小
public int size() {
return count;
}

//返回栈是否为空
public Boolean isEmpty() {
return this.size() > 0 ? true : false;
}

//打印栈
public void printStack() {
if (!this.isEmpty()) {
System.out.println("空栈");
}

for (int i = size() - 1; i > 0; i--) {
System.out.print(array[i] + " ");
}
}

}

测试:
package linear.stack;

/**
* @Description: TODO
* @Auther: Weijie.Zhang
* @Date: 2018/11/2 17:14
*/
public class MainTest {
public static void main(String[] args) {
Stack<Integer> stack = new Stack(Integer.class);
stack.printStack();
for (int i = 0; i < 10; i++) {
stack.push(i + 22);
}
System.out.println(stack.size());
System.out.println(stack.pick());
stack.pop();
System.out.println(stack.size());
stack.push(10000);
stack.printStack();
}
}

技术分享图片

 

栈表简单实现--数据结构与算法纪录片第二记

标签:esc   bsp   栈的实现   default   date   auth   val   ima   bool   

原文地址:https://www.cnblogs.com/qugemingzihaonan13/p/9897426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!