upcurve631 컴퓨터는 실제로 배열의 데이터에 index로 접근할까? 컴퓨터는 실제로 배열의 데이터에 index로 접근할까? 배열과 인덱스의 기본 이해 배열은 연속적인 메모리 공간에 데이터를 저장하는 구조이다. 각 요소는 인덱스를 통해 접근된다. 메모리 주소와 인덱스의 관계 그러나, 인덱스는 실제 메모리 주소를 직접 나타내지는 않는다. 인덱스는 기본적으로 메모리 주소에 대한 '오프셋'을 의미한다. 실제 메모리 접근 방식 실제 메모리 주소 계산을 예로 들어보자. 배열의 시작 주소가 1000이고, 각 요소가 4바이트를 차지한다면, 인덱스 3의 요소는 어떻게 계산될까? 계산식은 '1000 + (3 * 4)'가 되어, 이 요소의 메모리 주소는 1012가 된다. 이처럼 배열은 실제로는 '기준 주소 + (인덱스 * 요소 크기)'로 계산된 값.. 2023. 11. 24. 연결 리스트의 변형: 원형 연결 리스트, 이중 연결 리스트 1. 연결 리스트의 변형 단순 연결 리스트의 문제점 단순 연결 리스트는 각 노드가 단일 링크(포인터)만을 갖는 구조로, 다음 노드에 대한 접근은 용이하지만, 이전 노드로의 접근이 어렵다. 즉, 노드 검색 시 처음부터 순차적으로 탐색해야 하므로 효율성이 떨어진다. 이러한 제한은 데이터 구조에서의 유연성을 감소시키며, 특정 애플리케이션에서는 이러한 단일 링크 구조가 비효율적일 수 있다. 이중 연결 리스트 이중 연결 리스트는 각 노드가 두 개의 링크를 갖는 구조로, 하나는 다음 노드를, 다른 하나는 이전 노드를 가리킨다. 이 구조는 노드 검색과 조작이 더 유연해지며, 특히 노드의 삽입과 삭제가 더 간단하고 빠르다. 하지만, 추가적인 메모리가 필요하다는 단점이 있다. 자바 코드 예시: class DoublyLi.. 2023. 11. 19. 연결 리스트, 리스트의 개념 및 구현, 포인터 변수, 여러 연산들 1. 리스트의 개념 리스트의 의미 리스트는 일정한 순서로 나열된 데이터의 집합을 말한다. 이 순서는 물리적인 순서가 아닌 논리적인 순서를 의미한다. 이는 리스트가 데이터를 물리적인 메모리 위치에 연속적으로 저장하지 않아도 되며, 논리적인 순서만 유지하면 되는 추상적인 데이터 구조임을 의미한다. 배열의 정의 배열과 리스트는 상반되는 특성을 지닌다. 배열은 데이터가 메모리에 연속적으로 저장되는 구조로, 물리적인 순서가 중요하다. 배열에서는 각 데이터의 위치가 고정되어 있으며, 데이터에 접근하는 시간이 일정하다는 장점이 있다. 리스트의 구현 방법 리스트는 두 가지 주요 방법으로 구현될 수 있다. 첫 번째는 배열을 사용하는 방법이다. 이 방법은 메모리를 연속적으로 사용하지만, 데이터의 삽입과 삭제가 비효율적이 .. 2023. 11. 19. 큐 - 큐의 개념, 큐의 추상 자료형, 큐의 응용, 배열 큐, 원형 큐 1. 큐의 개념 큐의 의미 큐(Queue)는 일상생활에서 흔히 볼 수 있는 줄 서기와 유사하다. 사람들이 버스 정류장에 줄을 서서 버스를 기다리는 것처럼, 큐는 데이터들이 들어오고 나가는 순서가 중요한 자료 구조다. 큐의 정의 큐는 선입선출(First In First Out, FIFO)의 원칙을 따르는 자료 구조다. 큐에 가장 먼저 들어온 데이터가 가장 먼저 나간다. 추상적 특성: 큐는 추상적인 개념으로, 데이터의 처리 순서를 제어하는 데 초점을 맞춘다. 큐에 데이터를 추가하는 것을 'Enqueue', 데이터를 꺼내는 것을 'Dequeue'라고 함. 구현 방식: 큐는 배열이나 연결 리스트 등으로 구현될 수 있다. 각각의 구현 방식에 따라 성능이나 사용 방법에 차이가 있을 수 있음. 2. 큐의 추상 자료형.. 2023. 11. 18. 스택 - 스택의 개념, 스택의 추상 자료형, 연산 및 응용, 사칙연산식의 전위 중위 후위 표현 1. 스택의 개념 스택의 정의 스택은 매우 중요한 자료 구조 중 하나로, 마치 책이나 돌멩이를 순서대로 쌓아 올린 것과 같은 구조를 가진다. 스택은 '후입선출(LIFO, Last In First Out)'의 특성을 가지며, 가장 나중에 쌓은 항목이 가장 먼저 나오는 구조를 갖는다. 이러한 특성 때문에, 스택은 여러 컴퓨팅 과정에서 유용하게 사용된다. 스택의 핵심 개념은 다음과 같다: 후입선출(LIFO)의 원리: 스택에 추가된 마지막 항목이 가장 먼저 제거된다. 즉, 가장 최근에 쌓은 것이 가장 먼저 나오는 구조다. Push와 Pop 연산: 스택에 데이터를 추가하는 행위를 'Push', 데이터를 제거하는 행위를 'Pop'이라 한다. 이 두 연산은 스택을 관리하는 데 핵심적인 역할을 한다. Top 포인터: .. 2023. 11. 18. 이전 1 ··· 31 32 33 34 35 36 37 ··· 127 다음