Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 3.16 KB

README.md

File metadata and controls

72 lines (51 loc) · 3.16 KB

자료구조

1. 자료구조란?

대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미함.

1-1. 배열 Array

  • 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조

  • 파이썬에서는 리스트 타입이 배열 기능을 담당.

    data = [1, 2, 3, 4, 5]
    print(data[2])  # 3이 결과값으로 나온다.
  • 배열의 특징

    • 같은 종류의 데이터를 순차적으로 저장
    • 같은 종류의 데이터를 효율적으로 관리하기 위해 사용
    • 빠른 접근 가능 (장점)
    • 추가/삭제 쉽지 X (단점)
    • 미리 최대 길이 지정해야 함 (단점)

1-2. 큐 Queue

  • 기본적인 큐의 구조는 FIFO (First In First Out). 처음에 들어간 것이 먼저 나오게 한다. 기본적인 이라는 말의 뜻을 잘 알아야. Queue 구조는 다양함. (파이썬에서도 여러 구조의 큐 지원)

  • 멀티태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 사용됨. (운영체제에서) 특별한 장단점이 없음. 큐의 활용/용례를 아는 것이 더 중요함.

  • 용어

    • 큐에 데이터를 넣는다 👉 Enqueue
    • 큐에 데이터를 꺼낸다 👉 Dequeue
  • 예제

    import queue
    q = queque.Queue() # 일반적인 큐
    q.put('abcd')  # 넣는다
    q.put(11)  # 넣는다
    
    q.qsize() # 현재 큐의 크기 확인. size 2
    q.get() # 큐 출력. 처음 들어간 'abcd' 문자열이 출력된다.
    
    #### 그 외 큐 라이브러리 가져오기
    l = queue.LifoQueue()  # 스택구조 큐, 입출력 방식은 Queue()와 같다.
    
    """
    우선순위 큐, 입출력 방식은 Queue()와 다름.
    튜플형식으로 넣으며, 첫번재 값이 우선순위 값. 두번째가 입력하는 값. 
    우선순위 값이 작을수록 우선순위가 높다.(5, 10, 15인 경우 5가 제일 먼저 나온다)
    	=> 이 말은 최소힙인 경우로 이해하는건지..? 일단 넘어감.
    """
    p = queue.PriorityQueue()  
    p.put((10, 'korea'))  #  korea라는 문자열은 10이라는 우선순위를 갖는다.