Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

데이터 구조에서 스택의 응용

<시간/>

스택은 LIFO(Last In First Out) 데이터 구조입니다. 이 데이터 구조에는 다른 측면에서 몇 가지 중요한 응용 프로그램이 있습니다. 다음과 같습니다 -

  • 표현식 처리 -
    • 중위에서 접미사로 또는 중위에서 접두사로 변환 -

      스택은 일부 중위 표현식을 그에 상응하는 후위 또는 상응하는 접두사로 변환하는 데 사용할 수 있습니다. 이러한 접미사 또는 접두사 표기법은 컴퓨터에서 일부 표현을 표현하는 데 사용됩니다. 이러한 표현식은 중위 표현식에 그다지 익숙하지 않지만 몇 가지 큰 장점도 있습니다. 연산자 순서와 괄호를 유지할 필요가 없습니다.

    • 접미사 또는 접두사 평가 -

      접두사 또는 접미사 표기법으로 변환한 후 결과를 얻기 위해 표현식을 평가해야 합니다. 이를 위해서도 스택 데이터 구조의 도움이 필요합니다.

  • 역추적 절차 -

    역추적은 알고리즘 설계 기법 중 하나입니다. 이를 위해 우리는 어떤 방법으로 뛰어들고, 그 방법이 효율적이지 않으면 이전 상태로 돌아가서 다른 경로로 이동합니다. 현재 상태에서 돌아가려면 이전 상태를 저장해야 합니다. 이를 위해 스택이 필요합니다. 역추적의 몇 가지 예는 Knight Tour 문제 또는 N-Queen 문제 등에 대한 솔루션을 찾는 것입니다.

  • 스택을 잘 사용하는 또 다른 방법은 함수 호출 및 반환 프로세스 동안입니다. 다른 함수에서 함수를 호출할 때 해당 함수 호출 문이 첫 번째 문이 아닐 수 있습니다. 함수를 호출한 후, 우리는 또한 함수 영역에서 우리가 통제를 떠난 장소로 돌아와야 합니다. 따라서 다시 시작하지 않고 작업을 다시 시작하려고 합니다. 그런 이유로 우리는 프로그램 카운터의 주소를 스택에 저장하고 그것을 실행하기 위해 함수 본문으로 이동합니다. 실행이 완료되면 스택에서 주소를 꺼내어 프로그램 카운터에 할당하여 작업을 다시 시작합니다.