stack!순서 표 기반 구현
선생님 은 처음부터 우리 에 게 명확 한 개념 을 주 셨 습 니 다. 우 리 는 쌓 이 고 창고 가 있 지만 창고 가 없습니다!!
O (∩ ∩) O 우선 stack 의 개념 을 명 확 히 합 시다.
스 택 (stack) 은 한 끝 에 만 삽입 하거나 삭제 하 는 선형 표 입 니 다."LIFO" 선형 표 가 되 는 것 은 "후진 선 출" 이라는 뜻 입 니 다. (last in first out)
용어:
top (스 택 상단 요소) - 접근 가능 한 요소
push (스 택 에 들 어가 기) --- 요소 삽입
pop (스 택) -- 요소 삭제
- (shaffer 데이터 구조 및 알고리즘 분석 교재 참조)
우 리 는 사실 stack 은 특수 화 된 선형 표 로 한 끝 에 만 삽입 하거나 삭제 할 수 있다 는 것 을 분석 할 수 있다.
순서 표 는 top 을 설정 하 는 방법 이 두 가지 가 있 습 니 다.
1、
1, 2, 3, 4, 5 top 1 에서 가능 한 가요?
네!
분석:
삽입: 복잡 도 O (n)
삭제: 복잡 도 O (1)
2、
1, 2, 3, 4, 5 top 5 에서 가능 한 가요?
네!
분석:
삽입: 복잡 도 O (1)
삭제: 복잡 도 O (1)
나 는 누가 더 좋 은 지 이미 분명 하 다 고 생각한다.
top 의 설정 도 두 가지 방법 이 있 습 니 다.
1. 첫 번 째 로 이용 할 수 있 는 위 치 를 가리킨다.
2. 마지막 으로 저 장 된 데이터 의 위 치 를 가리킨다.
이 두 가 지 는 실현 하기 에는 약간의 차이 가 있 으 니, 스스로 주의 하면 된다.
나의 간단 한 실현 코드 를 붙 여 라.
헤더 파일 stack. h:
include
using namespace std;
template
class stack
{
private:
E *arr;
int size;
int top=0;
public:
stack(int s)
{
size=s;
arr=new E[s];
top=0;
}
~stack()
{
delete arr;
}
bool push(E it)
{
if(top==size)
{
cout<
main.cpp
#include"stack.h"
int main()
{
stacksta(3);
sta.push(1);
sta.push(2);
sta.push(3);
sta.pop();
sta.push(4);
}
특히 우리 의 clear () 는 top = 0 만 있 으 면 됩 니 다. 왜 그런 지 생각해 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 학습노트(6) 함수 객체모방 함수는 모두pass-by-value이다 함수 대상은 값에 따라 전달되고 값에 따라 되돌아오기 때문에 함수 대상은 가능한 한 작아야 한다(대상 복사 비용이 크다) 함수 f와 대상 x, x 대상에서 f를 호출하면:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.