1. 선형 리스트 1. 선형 리스트 데이터를 구조화시키는 기본 표현 방식은 다음과 같다. 본 포스팅에서는 선형 리스트를 순차 자료구조 방식으로 구현하는 것을 다룰 것이다. 리스트를 표현하는 일반적인 방법은 다음과 같다. 리스트이름 = (원소, 원소2, … , 원소 n) 괄호 안에 나열한 원소들을 하나의 리스트로 그룹화, 리스트 이름을 정한다. 위 경우, 새로운 원소를 2번
자리에 삽입하기 위해 원소들을 4회 이동하였다. 1.2 선형 리스트, 원소 삭제 선형 리스트에서 원소를 삭제하면 원소가 있던 자리는 빈자리가 된다. (n+1)개의 원소로 이루어진 선형 리스트에 k번 자리에 있던 원소를 삭제하면, 2. 선형 리스트 구현 선형 리스트를 순차 구조로 표현하기 위해 배열 을 사용한다. 2.1 1차원 배열의 순차 표현 1차원 배열 : 인덱스를 하나만 사용하는 배열 아래 코드는 분기별 상품 판매량을 출력하는 코드이다.
2.2 2차원 배열의 순차 표현 분기별 판매량 뿐만 아니라, 연도별 판매량을 나타내고 싶을때는 인덱스가 2개 필요하다. 이러한 경우 2차원 배열을 사용한다.
2.3 3차원 배열의 순차 표현 2년 동안의 분기별 선형 리스트는 2차원 배열로 표현할 수 있었다. 3차원 배열의 논리적 구조는 메모리상에는 2차원 배열과 마찬가지로 1차원 선형 구조 형태로 저장된다.
다음은 1팀, 2팀의 2년 동안의 분기별 선형 리스트를 3차원 배열로 구현한 코드이다.
순차 자료구조는 원소들의 순서를 따로 표시할 필요없다는 장점이 있다. 3. 다항식의 순차 자료구조 표현 순차 자료구조를 사용하여 다항식 표현 및 연산을 수행 가능하다. 3.1 ADT polynomial 다음은 다항식 연산에 필요한 연산을 추상자료형(ADT)으로 정의한 것이다.
예를 들어, 위 추상 자료형의 정의에 따른다면, A(x) = 4x3 + 3x2 + 2는 p1 = ((3,4), (2,3), (0,2))와 같이 각 항의 지수와 계수를 한 쌍으로 하는 3개의 항을 선형 리스트 p1의 원소로 정의할 수 있다. n차 다항식 P(x)의 순차 자료구조 표현 다음은 3차 다항식을 순차 자료구조로 표현한 것에 대한 예시이다. 3차 다항식의 순차 자료구조 표현 다항식의 각 항이 계수를 정해진 인덱스의 배열요소에 저장하여 사용하는 방법은 지수를 따로 저장하지 않기 때문에 표현하기가 쉽고 간단하다. 그러나 항의 계수가 ‘0’인 항이 많을 경우 메모리의 낭비가 심해지게 된다. 희소 다항식의 순차 자료구조 표현 2차원 배열에서 각 행의 0번 열에 지수, 1번 열에 계수를 저장한다. 3.2 addPoly 알고리즘 추상자료형으로 정의한 다항식 연산 중 두 다항식의 덧셈 연산인 addPloy(p1,p2)에 대한 알고리즘을 정의한 바는 다음과 같다.
3.3 addPoly 알고리즘 구현 addPoly 알고리즘을 자바 프로그램으로 구현한 결과는 다음과 같다.
Reference
|