데이터 구조 - 창고 의 선형 표 실현
2891 단어 데이터 구조 와 알고리즘
순서 구 조 는 다음 과 같다.
package stack_and_queue;
import java.util.Arrays;
public class ArrayStack {
private final int DEFAULT_VALUE = 10;
private Object[] elementData;//
private int size=0;//
public ArrayStack(){//
elementData=new Object[DEFAULT_VALUE];
}
public ArrayStack(int initSize){//
elementData=new Object[initSize];
}
public void ensureSize(int minSize){//
int capacity=elementData.length;
while (minSize>capacity){
capacity<<=1;
}
elementData=Arrays.copyOf(elementData, capacity);
}
public void push(T element){//
ensureSize(size+1);
elementData[size++]=element;
}
public T pop(){//
if(elementData[0]!=null){
T value=(T)elementData[size-1];
elementData[size-1]=null;
size--;
return value;
}
else
return null;
}
public String toString(){
if (size ==0){
return "[]";
}
else{
StringBuilder sb =new StringBuilder("[");
for(int i=size-1;i>-1;i--){
sb.append(elementData[i].toString()+",");
}
int len=sb.length();
return sb.delete(len-1, len).append("]").toString();
}
}
public static void main (String[] args){//
ArrayStack as =new ArrayStack(16);
as.push("String");
as.push(" ");
as.push("haha");
System.out.println(as);
as.pop();
System.out.println(as);
as.pop();
System.out.println(as);
}
}
체인 구 조 는 다음 과 같다.
package stack_and_queue;
class Node{
public Node next;
public T data;
public Node(){
this.next=null;
this.data=null;
}
public Node(T data,Node next){
this.next=next;
this.data=data;
}
}
public class LinkStack {
private Node head;
private int size=0;
public LinkStack(){
head = null;
}
public LinkStack(T element){
head=new Node(element,null);
size++;
}
public void push(T element){//
Node n=new Node(element,head);
head=n;
size++;
}
public T pop(){//
Node returnNode = head;
head=head.next;
returnNode.next=null;
size--;
return (T) returnNode.data;
}
public String toString(){
if(size==0){
return "[]";
}
else{
StringBuilder sb=new StringBuilder("[");
for(Node i=head;i != null;i=i.next){
sb.append(i.data.toString()+",");
}
int len=sb.length();
return sb.delete(len-1, len).append("]").toString();
}
}
public static void main(String[] args){
LinkStack ls =new LinkStack("haha");
ls.push("String");
ls.push(" ");
ls.push("xixi");
System.out.println(ls);
ls.pop();
System.out.println(ls);
ls.pop();
System.out.println(ls);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA] 배열 회전 출력요소 가 출력 을 시작 하 는 위치 에 주의 하 십시오. 모두 몇 라운드 의 수출 이 있 습 니까? n/2 + 1 매 라 운 드 는 상, 우, 하, 좌 로 나 뉜 다. 각 방향의 시작 위치 와 좌표 의 관 계 를 구...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.