[정상 설치] [창고] 출고 순서 문제 총화
우리 모 두 는 낯 설 지 않 은 데이터 구조 로 먼저 나 왔 다.
창고 에 대해 많은 조작 이 있 습 니 다:
1. 스 택 을 쌓 고 2. 스 택 을 나 가 고 3. 스 택 꼭대기 요 소 를 가 져 옵 니 다. 4. 스 택 이 비어 있 는 지 판단 합 니 다. 5. 스 택 이 꽉 찼 는 지 판단 합 니 다.
이 가능 하 다, ~ 할 수 있다,...
이 문 제 는 모두 가 먼저 생각 한 것 은 틀림없이 귀속 이다.
본 고 는 또한 이 방법 을 채택 하여 창고 에서 나 올 수 있 는 모든 가능 한 출력 을 실현 한다.
우선 코드 를 살 펴 보 겠 습 니 다.
4. 567913. 여기 서 우 리 는 자바 의 깊 은 복사 본 을 사 용 했 는데 그것 이 바로 clone (클론) 이다.C + + 안에 있어 요.
깊 은 복사 와 얕 은 복사, 그들의 차이 점: 깊 은 복사, 내용 이 복사 되 었 고 주소 도 변화 가 생 겨 서로 영향 을 주지 않 습 니 다.그러나 얕 은 복사 에 대해 서 는 주로 같은 메모리 공간 을 가리 키 는데 한 내용 이 바 뀌 면 다른 것 도 달라 집 니 다!자바 에 서 는 클 라 이언 트 방식 으로 이 루어 집 니 다.
딥 카피!
2. 스 택 순서 가 합 법 적 인지 판단
스 택 에 들 어 가 는 순서 와 스 택 을 나 가 는 순 서 를 정 하여 이 스 택 순서 가 합 법 적 인지 판단 합 니 다.
코드 부터 보 겠 습 니 다.
package qyq.Algorithm.StackPop;
import java.util.Stack;
/**
* ,
* @author qi
* @creation 2012-8-14
*/
public class StackPop {
public static void orderStack(Stack<String> stack,String result,String input){
@SuppressWarnings("unchecked")
Stack<String> temp=(Stack<String>)stack.clone();
String subStr=input.substring(0,1);
input =input.substring(1);
temp.push(subStr);
if(input.length()==0){
while(!temp.isEmpty()){
result+=temp.pop();
}
System.err.println(result);
}else {
orderStack(temp, result, input);
while(!temp.isEmpty()){
result+=temp.pop();
orderStack(temp, result, input);
}
}
}
public static void main(String args[]){
String s="1234";
Stack<String> stack =new Stack<String>();
orderStack(stack, "", s);
}
}
위의 두 while 순환 이 관건 이 며, 각각 다른 상황 을 처리 합 니 다.생각해 보 세 요!헤헤
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.