package com.java.datastructure.stact; //java顺序栈实现 public class LinearStact { private int top = -1; private final static int defSize = 2; private String[] data = new String [defSize]; //添加元素 public boolean push(String pData) { //判断是否栈满 if(top+1 >=data.length) { //增加容量 resize(); } ++top; data[top] = pData; return true; } //取出元素 public String pop() { //判断是否栈满 if(isEmpt()) { return null; } String temp = data[top]; data[top] = null; top--; return temp; } //删除元素 public boolean del() { if(isEmpt()) { return false; } data[top] = null; top--; return true; } //获取栈顶元素 public String peek() { if(isEmpt()) { return null; } else { return data[top]; } } //查找元素 public int search(String content) { int index = -1; for (int i=0; i<length(); i++) { if(data[i].equals(content)) { index = i; break; } } return index; } public void resize() { String[] dataTemp = new String [data.length*2]; for (int i=0; i<data.length; i++) { dataTemp [i] = data[i]; data[i] = null; } data = dataTemp; dataTemp = null; } //判断是否为空 public boolean isEmpt() { return top==-1; } //获取栈宽度 public int length() { return top+1; } //清除 public void clean() { for (int i=0; i<data.length; i++) { data[i] = null; } top = -1; } public void display() { for (int i=0; i<top+1; i++) { System.out.println("打印每个元素"+data[i]); } } public static void main(String[] args) { LinearStact stact = new LinearStact(); String content = "isNull "; System.out.println(content+"判断是否为空 "+stact.isEmpt()); System.out.println(content+"获取栈顶元素 "+stact.pop()); System.out.println(content+"获取元素个数 "+stact.length()); System.out.println(content+"获取栈顶-peak元素 "+stact.peek()); System.out.println(content+"获取查找stactA元素 "+stact.search("stactA")); stact.push("stactA"); stact.push("stactB"); stact.push("stactC"); //打印 stact.display(); content = "notNull "; System.out.println(content+"判断是否为空 "+stact.isEmpt()); System.out.println(content+"获取元素个数 "+stact.length()); System.out.println(content+"获取栈顶-peak元素 "+stact.peek()); System.out.println(content+"获取栈顶查找stactC元素 "+stact.search("stactC")); System.out.println(content+"获取栈顶元素 "+stact.pop()); } }
4 java顺序栈实现
最新推荐文章于 2023-08-28 17:09:23 发布