스택

    스택 포인터

    스택FILO(First In Last Out)형태로 데이터를 액세스하는 데이터 구조이다. 즉, 가장 나중에 들어온 것부터 차례로 액세스하는 것이다. Heap은 Stack과 반대로 FIFO형태로 데이터를 액세스한다. 스택은 한 곳으로만 액세스할 수 있으며, 이부분을 스택의 탑이라고 한다. FILO의 액세스 순서 : 5 → 4 → 3 → 2 → 1FIFO의 액세스 순서 : 1 → 2 → 3 → 4 → 5 중앙처리장치는 기억장치의 특정 영역을 스택 영역으로 지정하여 운영한다.  스택에 저장되는 데이터의 크기는 레지스터의 크기, 데이터 버스의 폭과 같다. 즉 스택은 컴퓨터의 단어(word)단위로 액세스 된다. 만일 기억장치가 바이트 단위로 구성되어 있고 레지스터의 크기가 16 비트이면, 두 개의 기억장소에 한개..

    [실4] 28278 - 스택 2

    #include #include #include using namespace std; stack s; string res; void Push(int n) { s.push(n); } void Pop() { if (s.empty()) res += to_string(-1) + '\n'; else { res += to_string(s.top()) + '\n'; s.pop(); } } void Size() { res += to_string(s.size()) + '\n'; } void Empty() { res += to_string(s.empty()) + '\n'; } void Top() { res += to_string(s.empty() ? -1 : s.top()) + '\n'; } int main() { ios..

    컨테이너 어댑터 (스택, 큐, 우선순위 큐)

    컨테이너 어댑터(container adapter)란 기존 컨테이너의 인터페이스를 제한하여 만든 기능이 제한되거나 변형된 컨테이너를 의미한다. 이러한 컨테이너 어댑터는 각각의 기초가 되는 클래스의 인터페이스를 제한하여, 특정 형태의 동작만을 수행하도록 한다. 단, 반복자를 지원하지 않으므로 STL 알고리즘에서는 사용할 수 없다. 컨테이너 어댑터의 종류 STL에서는 컨테이너 어댑터로 다음과 같은 클래스 템플릿을 제공한다. stack queue priority_queue 스택(stack) 스택(stack) 컨테이너는 vector 클래스의 인터페이스를 제한하여, 전형적인 스택 메모리 구조의 인터페이스를 제공한다. 스택 컨테이너는 stack 헤더 파일에 정의되어 있다. 스택 메모리 구조는 선형 메모리 공간에 데이..

    프로세스 메모리 구조와 스택 프레임 구조

    프로세스 메모리 구조 프로세스의 메모리 구조는 Text, Data, Heap, Stack 영역으로 구분되어 있다. 프로세스 메모리 구조 Text 영역 : 프로그램 코드와 상수가 정의되어 있고, 읽기만 가능한 메모리 영역이기 때문에 데이터를 저장하려고 하면 분할 충돌을 일으켜 프로세스가 중지된다. Data 영역 : 전역 변수(Global variable)와 정적 변수(Static variable)가 저장되어 있는 영역이다. Heap 영역 : 프로그래머의 필요에 따라 동적 메모리 호출에 의해 할당되는 메모리 영역이다. c언어의 기준으로 malloc() 함수나 calloc() 함수에 의해 생성된 변수들이 이 곳에 할당된다. Stack 영역 : 함수 인자 값, 함수 내의 지역 변수, 함수의 반환 주소 등이 저장..

    Stack (스택) 구현

    #include using namespace std; class MyIntStack { int* p; int size; int tos;public: MyIntStack() {}; MyIntStack(int size); MyIntStack(MyIntStack& s); ~MyIntStack(); bool Push(int n); bool Pop(int& n);}; int main() { MyIntStack a(10); a.Push(10); a.Push(20); MyIntStack b = a; b.Push(30); int n; a.Pop(n); cout size = size;} MyIntStack::MyIntStack(..