>Java >java지도 시간 >주어진 스택의 상단 및 하단 요소를 찾는 Java 프로그램

주어진 스택의 상단 및 하단 요소를 찾는 Java 프로그램

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-02-07 11:25:16875검색

Java program to find the top and bottom elements of a given stack 이 튜토리얼은 Java를 사용하여 주어진 스택의 상단 및 하단 요소를 찾는 방법을 설명합니다.

스택은 원리를 따르는 선형 데이터 세트를 나타냅니다. 따라서 동일한 위치에서 요소가 추가되고 제거됩니다. 우리는 주어진 스택의 상단과 하단 요소를 찾는 두 가지 방법, 즉 반복

재귀 적으로

를 찾는 두 가지 방법을 탐색 할 것입니다. 문제 문자 우리는 n 요소가 포함 된 스택 어레이를 얻을 수 있으며, 스택의 첫 번째와 n 번째 요소를 찾는 것입니다. 따라서 사용자 지정 스택에서 반복 메소드 및 재귀 메소드 를 사용하여 원래 스택이 변경되지 않도록해야합니다.

1 를 입력하십시오

출력 1 2 를 입력하십시오

출력 2

상단 및 하단 요소를 찾는 반복 방법

첫 번째 방법의 경우 스택으로 사용되는 배열을 정의한 다음 스택 작업을 정의하여 반복 메소드로 원하는 요소를 검색합니다. 주어진 스택의 상단 및 하단 요소를 찾는 단계는 다음과 같습니다.
<code>stack = [5, 10, 15, 20, 25, 30]</code>
스택을

maxsize 값으로 6과 동일하고 상단을 -1로 설정합니다 (빈 배열을 나타냅니다). 요소 5, 10, 15, 20, 25 및 30을 푸시 () 작동에 의해 스택에 누르고,

stackarray [top] 에서 최고 값을 증가시킵니다.
<code>堆栈中的顶部元素是 --> 30
堆栈中的底部元素是 --> 5</code>
스택이 비어 있는지 확인하십시오. 그런 다음 peek () 를 사용하여 StackArray [Top]을 반환하여 상단 요소를 찾으십시오. 상단은 이미 배열의 마지막 요소로 설정되어 있기 때문입니다.

마지막으로, bottom () 함수 를 사용하여 하단 요소를 찾으십시오.이 요소는 StackArray [0]의 값, 즉 스택 어레이의 첫 번째 및 병적 요소를 반환합니다.

최종 상단 및 하단 값을 출력합니다.
<code>stack = [1000, 2000, 3000, 4000, 5000]</code>

다음은 주어진 스택의 상단 및 하단 요소를 찾기 위해 반복 방법을 사용하는 Java 프로그램입니다.

출력
<code>堆栈元素:5000 4000 3000 2000 1000
底部元素:1000
顶部元素:5000</code>

시간 복잡성 : o (n) 스택 형성 중 (압력) 동안 각 요소가 배열 끝에 추가되고 크기 n까지 인덱스가 매번 1 증가하기 때문입니다. o (1) 엿보기 및 하단 작업 중에 StackArray [Top] 및 StackArray [0]를 반환하기 때문에.

공간 복잡성 : o (n). 스택 크기에 비례하여 n 요소를 저장하기 위해 maxsize를 고정하기 때문입니다.

상단 및 하단 요소를 찾는 재귀 방법 이 방법에서는 재귀를 사용하여 스택에서 상단 및 하단 요소를 찾을 것입니다. 스택은 푸시 () 작업을 사용하여 초기화되고 형성되고 필요한 요소를 재귀 적으로 추출합니다. 주어진 스택의 상단 및 하단 요소를 찾는 단계는 다음과 같습니다.
    스택을
  • maxsize 로 초기화하고 5는 5이고 상단 세트는 -1입니다. 스택 크기가 최대 크기를 초과하지 않는지 확인하십시오. 푸시 () 함수를 사용하여 각 정수 값을 스택에서 밀고 상단을 1로 증가시키고 stackarray [top] 에 값을 저장하십시오.
  • 재귀 메소드를 사용하여 하단 요소를 찾아 현재 색인을 최상위 값으로 설정하십시오. 그런 다음 인덱스가 0이면 stackArray [0]
  • (하단 요소), 그렇지 않으면 함수는 인덱스가 1만큼 감소하여 재귀 적으로 호출됩니다. 인덱스가 0으로 설정된 상단 요소를 찾으십시오. 기본 경우, 현재 인덱스가 최상위 값과 같으면 stackarray [top] 가 반환됩니다. 그렇지 않으면, 함수는 1에 의해 증가 된 인덱스를 사용하여 재귀 적으로 호출된다.
  • stackarray [] 의 모든 요소를 ​​재귀 적으로 인쇄합니다. 기본 사례는 인덱스가 0보다 작 으면 재귀가 중지된다는 것입니다. 그렇지 않으면 함수를 호출하고 1만큼 감소한 색인으로 정수 값을 재귀 적으로 인쇄하십시오.
  • 메인 함수 를 호출하고 전체 스택뿐만 아니라 상단 및 하단 요소를 인쇄하십시오.
  • 다음은 재귀 방법을 사용하여 주어진 스택의 상단 및 하단 요소를 찾는 Java 프로그램입니다. 출력
  • 시간 복잡성 : 총계는 O (n)입니다. 요소는 크기 n의 스택 형성 동안 푸시 () 작업에 O (1)을 소비하기 때문에 O (n)은 O (n)입니다. 최악의 경우, 재귀 작업 비용은 O (n)입니다.
  • 공간 복잡성 : 재귀 콜 스택으로 인해 재귀 적으로 O (n)입니다. 배열 자체는 O (n)을 사용하여 N 요소를 저장합니다. 결론
  • 간단히 말해서, 두 방법 모두 해당 사례에 적용 할 수 있으며, 여기서 직접 배열 방법은 스택 요소에 대한 일정한 시간 액세스 및 간단한 대화식 구현을 제공합니다. 반면, 재귀 적 방법은 스택 작업에 ​​대한 재귀 적 관점을 제공하여보다 일반적이고 알고리즘 방법을 강조합니다. 이 두 가지 방법을 이해하면 스택의 기본 사항과 두 가지 방법 중 어느시기를 사용할 수 있습니다.

위 내용은 주어진 스택의 상단 및 하단 요소를 찾는 Java 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.