배열

CS/어셈블리

[SPARC] 27. 일차원 배열

지난 글에서는 스택 프레임을 사용하는 예제를 정리하였다. 이번 글에서는 스택 메모리에 일차원 배열을 선언하는 방법을 정리하고자 한다. 스택에서 일차원 배열 선언하기 함수 안에서 아래와 같이 변수를 선언한다고 해보자. int a; int array[5]; int b; 이 경우, 실제 스택에는 지역변수들이 어떤 순서로 들어갈까? 우선 선언한 순서대로, 높은 주소인 %fp부터 채워지므로 a > array > b 순서로 채워진다. 그렇다면 array 내부에서는 어떤 순서로 채워질까? array 내부에서는 array[0]~array[4] 가 주소가 '증가하는' 순서대로 할당이 되어야 한다. 그런데 스택에서는 점점 주소가 감소하는 방향으로 공간이 넓어지므로 아래와 같은 순서로 할당받게 된다. [높은 주소] [낮은 ..

CS/자료구조

[자료구조 및 프로그래밍] 2. Queue (implement with Array) - 1

이번에는 큐를 배열을 통해 구현하는 과정을 정리하고자 한다. 구현에 앞서 '큐'의 개념을 살펴보자. 큐의 개념 이번에도 구글 번역기로한번 번역부터 해 보았다. 이번에는 번역기가 번역을 해준다! 번역의 결과가 큐를 말 그대로 설명해주고 있다. 큐는 '대기줄' 이다. 대기줄의 특성을 생각해보자. 식당에 (학교에서는 교수님이 '하카타분코' 라는 라멘집을 예시로 들어주신다 ㅋㅋ) 손님이 많아서 대기줄이 길게 있다고 할 때, 신규로 오는 손님은 대기줄의 '뒤'에 서게 되고, (push) 식당에 빈자리가 생기면 대기줄 맨 앞에 있던 사람이 들어가게 된다. (pop) 큐는 이를 그대로 표방하는 자료구조이다. 먼저 들어왔던 데이터가 먼저 나가는 First In First Out (FIFO) 방식의 자료구조이다. 큐는 ..

CS/자료구조

[자료구조 및 프로그래밍] 1. Stack (implement with Array)

Stack ( 스택 ) 이란 스택이라는 자료구조는 매우 직관적으로 이해할 수 있는 자료구조이다. 스택이라는 말 자체가 이미 이 자료구조에 대해 모든 걸 설명하고 있다. 보통 스택이라고 하면 어떤 것들이 쌓여있는 형태를 의미하는데, 스택이라는 자료구조도 무언가를 쌓는 형태를 자료구조화 한 것이다. 가령 책이 한 무더기 쌓여있다고 해보자. 중간에 있는 원하는 책을 찾아 꺼내려면 어떻게 해야할까? 가장 당연하게 떠오르는 방법은 맨 위에 있는 책부터 하나씩 하나씩 확인하면서 찾을 것이다. 중간 어디에 있는지도 모르는데 책을 무더기로 들춰가면서 찾는 것은 너무 힘들지 않을까 그 책 무더기에 새로운 책을 여러권 놓는다고 해보자. 그러면 가장 먼저 놓은 책이 제일 밑에 놓이고, 가장 나중에 놓은 책이 맨 위에 놓이는..

CS/자료구조

[자료구조 및 프로그래밍] 0. 주소록 프로그램과 array (배열)

3글자의 알파벳으로 이루어진 이름과, 4글자의 숫자로 이루어진 번호 쌍을 저장하는 주소록 프로그램이 있다고 해보자. 이 프로그램에서 이름과 번호쌍을 어떻게 관리할 수 있을까? 대부분의 언어에서 기본으로 제공하는 '배열' 자료구조를 이용하여 구현한다면 아래와 같이 구현할 수 있을 것이다. 1. 두 배열을 이용하여 데이터를 저장하기 첫 번째 방법은 두 배열을 이용해서 이름과 번호를 저장하는 방법이 있다. 이름과 번호를 연결짓는 기준은 '배열의 인덱스' 가 된다. 이렇게 저장한 자료에서 이름을 기준으로 번호를 찾는다고 하면 아래와 같이 코드를 짤 수 있다. #include char name[10][3]; char number[10][4]; char find_name[3]; int main() { printf(..

독서/Inside Javascript

[Inside Javascript] 5. 배열

-배열 자바스크립트의 배열은 C의 배열과는 조금 다르다. 오히려 파이썬의 리스트에 더까운데, 그렇다고 파이썬의 리스트와 완전히 같은 것도 아니다. 배열의 생성은 배열 리터럴이나 생성자 함수를 이용한다. 배열 리터럴은 [] 를 이용하여 표기한다. 파이썬과 똑같다. var a = ['apple', 10, true]; 위와 같이 데이터 형이 통일 되지 않아도 된다. 배열 요소에 접근하여 읽고 쓸 때도, 배열 내 위치 인덱스 값을 이용해 [] 로 접근한다. a[0] = 'orange'; console.log(a[0]); // orange 여기까지는 파이썬의 리스트와 다를 게 없어보인다. 그러나 자바스크립트 배열의 특이한 점은 배열에 동적으로 값을 넣을 때, 인덱스를 신경쓰지 않고 넣을 수 있다는 점이다. var..

에버듀
'배열' 태그의 글 목록