正文
java栈的源代码 java栈的常用方法
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
怎样实现以下栈的接口:(用java写)
import java.util.*;
interface Stack{
void push(int val);
Object pop();
int size();
int maxSize();
}
public class TestStack implements Stack {
int size;
int maxSize;
Object list[];
public TestStack()
{
size=0;
maxSize=10;
list=new Object[maxSize];
}
public void push(int obj)
{
if(size == maxSize)
{
maxSize=maxSize*2;
Object newObj[]=new Object[maxSize];
System.arraycopy(list, 0, newObj, 0, list.length);
list=newObj;
}
list[size]=obj;
size++;
}
public Object pop()
{
if(size!=0)
{
size--;
return list[size];
}
else throw new ArrayIndexOutOfBoundsException(size);
}
public int size()
{
return size;
}
public int maxSize()
{
return maxSize;
}
public static void main(String []args)
{
TestStack test=new TestStack();
//test.pop();此时出栈操作会报错 在此方法中抛出了 //ArrayIndexOutOfBoundsException
for(int i=0; i12; i++)
test.push(i);
System.out.println(test.size());
System.out.println(test.maxSize());
for(int i=0; i12; i++)
System.out.print(test.pop()+" ");
}
}
JAVA编程实现堆栈出栈操作!
数组实现的堆栈:ArrayStack.java
public class ArrayStack {
Object[] m_elements;
int m_size;
public ArrayStack(int len) {
m_elements = new Object[len];
m_size = 0;
}
public ArrayStack() {
this(50);
}
// insert onto stack
public void push(Object element) {
m_elements[m_size] = element;
m_size++;
}
// return and remove the top element
public Object pop() {
if (!this.isEmpty()) {
Object obj = m_elements[m_size - 1];
m_elements[m_size - 1] = null;
m_size--;
return obj;
} else {
return null;
}
}
// return the top element
public Object top() {
if (!this.isEmpty()) {
return m_elements[m_size - 1];
} else {
return null;
}
}
// return 1 -- is empty
// return 0 -- is not empty
public boolean isEmpty() {
return this.size() == 0;
}
public int size() {
return m_size;
}
}
使用链表实现(单链表) :
public class Stacklist {
Node m_header;
int m_size;
public ListStack() {
m_header = null;
m_size = 0;
}
public void push(Object value) {
m_header = new Node(value, m_header);
}
public Object pop() {
if (!this.isEmpty()) {
throw new RuntimeException("Stack underflow");
}
Object obj = m_header.element;
m_header = m_header.next;
return obj;
}
// return reference to most recently added elemenet
public Object peek() {
if (!this.isEmpty()) {
throw new RuntimeException("Stack underflow");
}
return m_header.element;
}
public boolean isEmpty() {
return this.size() == 0;
}
//return the number of the queue's elements;
public int size() {
return m_size;
}
}
链表的需要用到一个结点类 Node.java 代码如下
public class Node {
Object element;
Node next;
public Node(Object theElement) {
this(theElement, null);
}
public Node(Object theElement, Node n) {
element = theElement;
next = n;
}
public Object getElement() {
return element;
}
public void setElement(Object element) {
this.element = element;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
怎样用java实现栈
栈的定义
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。
(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
(2)当表中没有元素时称为空栈。
(3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。
栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。
实现代码:
package com.gc.list;
import Java.util.*;
public class MyStack {
private LinkedList ll=new LinkedList();
public void push(Object o){
ll.addFirst(o);
}
public Object pop(){
return ll.removeFirst();
}
public Object peek(){
return ll.getFirst();
}
public boolean empty(){
return ll.isEmpty();
}
public static void main(String[] args){
MyStack ms=new MyStack();
ms.push("zhangsan");
ms.push("lisi");
ms.push("wangwu");
System.out.println(ms.pop());
System.out.println(ms.peek());
System.out.println(ms.pop());
System.out.println(ms.empty());
}
}
用java代码编写堆栈?
参看: 1 import java.util.*; 2 3 public class TestStack { 4 public static void main(String[] args) { 5 Stack stack = new Stack(); 6 7 for(int i = 0; i 10; i++) { 8 stack.push(new Integer(i)); 9 }1011 if(!stack.empty()) {12 System.out.println(stack.pop());13 }14 }15 }
怎么用java代码实现栈内存?
使用java.util包中的Stack类创建一个栈对象
public Object push(Object data);输入数据,实现压栈
public Object pop();输出数据,实现弹栈
public boolean empty()判空
public Object peek();查看栈顶元素
可以去查查API嘛
我也是学java的,大家一起进步。
java,编程实现栈的原理,如何编程呢
用面向对象的思想考虑该问题,基本的栈的概念包含两种行为:出栈、入栈。
使用数组来完成这个事儿的话,入栈时在数组的最后一条记录后添加内容,出栈时取最后一条记录。
java栈的源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java栈的常用方法、java栈的源代码的信息别忘了在本站进行查找喔。