본문 바로가기
학교 공부/자료구조

[자료구조] 리스트 ADT

by 33곰탱 2024. 9. 4.

오늘은 리스트 ADT를 다룰 예정이다.

리스트 ADT

리스트 ADT는 데이터 구조의 한 유형으로, 연속적인 임의의 개체들을 모델링하는 데 사용됩니다.  

이는 리스트가 순서가 있는 데이터 항목들의 집합을 나타낸다는 것을 의미합니다.  

리스트 ADT는 다음과 같은 특징을 가집니다:

연속적인 임의의 개체들:

    • 리스트는 여러 개의 요소(element)를 일렬로 나열한 구조입니다. 각 요소는 고유한 위치(인덱스 또는 순위)로 접근할 수 있습니다.

원소에 대한 접근 도구:

    • 리스트 ADT는 각 원소에 쉽게 접근할 수 있도록 다양한 연산을 제공합니다. 예를 들어, 리스트에서 특정 위치(순위)에 있는 원소를 가져오거나, 새로운 원소를 특정 위치에 삽입하거나, 기존 원소를 삭제할 수 있습니다.

순위(rank):

  • 리스트의 각 원소는 순위를 가지고 있으며, 이 순위는 원소의 위치를 나타냅니다. 일반적으로 순위는 0부터 시작하는 정수입니다. 이를 통해 리스트의 각 원소는 고유한 위치로 식별됩니다.

리스트 ADT의 메소드

리스트 ADT는 다양한 메소드를 통해 데이터를 조작하고 접근할 수 있습니다. 주요 메소드는 다음과 같습니다:

일반 메소드:

      • boolean isEmpty(): 리스트가 비어 있는지 확인
      • integer size(): 리스트의 크기 반환
      • iterator elements(): 리스트의 모든 요소를 순회하는 반복자 반환

접근 메소드:

      • element get(r): 주어진 순위 r에 있는 요소 반환

갱신 메소드:

    • element set(r, e): 주어진 순위 r에 있는 요소를 e로 갱신
    • add(r, e): 주어진 순위 r에 요소 e 추가
    • addFirst(e): 리스트의 첫 번째 위치에 요소 e 추가
    • addLast(e): 리스트의 마지막 위치에 요소 e 추가
    • remove(r): 주어진 순위 r에 있는 요소 제거

리스트 ADT에서의 예외처리

리스트 ADT를 사용할 때 발생할 수 있는 오류 상황에 대해 예외 처리가 필요합니다.  

예외 상황은 프로그램의 안정성과 오류 복구를 위해 중요합니다:

  • invalidRankException(): 유효하지 않은 순위를 참조하려고 할 때 발생
  • fullListException(): 리스트가 가득 찼을 때 요소를 추가하려고 할 때 발생
  • emptyListException(): 빈 리스트에서 요소를 제거하려고 할 때 발생
이러한 리스트 ADT는 스택, 큐, 집합 등을 표현하기 위한 도구가 된다.!

스택, 큐, 집합등은 연결리스트 혹은 배열을 사용해서 구현할 수 있고 각각 상황에따라 효율적인 것이 다르다고 한다!!!