목록Stack (2)
DNF LOVE
컴퓨터 Process가 실행될 때 가장 중요한 부분은 어디일까? 어쩌면 당연한 이야기겠지만 Memory와 CPU이다. 우리는 프로그래밍 언어를 배우면서 정적변수, 지역변수 등을 나뉘며 이 둘은 다른 메모리 영역에 적재된다는 것을 스쳐가듯 배웠을 것이다. 그렇다면 각 데이터들은 어느 메모리에 적재되는 것일까? 이것은 어떤 OS 책을 읽나 기본적으로 보여주는 메모리 영역 그림이다. Code, Data, Stack영역은 컴파일러가 알아서 메모리 영역을 결정해준다. 그러나 반대로 Heap영역은 개발자에 의해 프로그램 동작 시(RunTIme) 메모리에 데이터가 적재되는 특징을 갖고 있다. 각 영역은 어떤 데이터를 담고 특징을 갖고있는지 알아보도록 하자. 1. Code 영역 : 코드(=Text) 영역은 간단하게 실..
[스택과 큐] 1. 스택 : 스택은 탑 모양으로 생각하면 좋을 것이다. 스택은 후입선출(LIFO – Last In First Out)으로 진행된다. 즉, 데이터가 들어오면 아래부터 쌓이게 되고, 데이터가 나갈 때는 가장 최근에 들어온 데이터부터 나가게 된다. A. 스택의 연산 i. Push : 스택에 데이터를 넣는 연산 ii. Pop : 스택에서 데이터를 꺼내는 연산 iii. Top : 스택의 가장 꼭대기를 가리키는 포인터 iv. isEmpty : 스택이 공백인지 아닌지 확인하는 연산 v. peek : Top이 가리키는 데이터를 반환 데이터가 A -> B -> C -> D 이 순서대로 들어있는 스택이라고 할 때, 4번 Pop을 하게 되면 D -> C -> B -> A 이런 순서대로 데이터가 출력된다. 2..