[청년취업사관학교 새싹]핀테커스 수업 4주차(9/20 Day-18)

장민정·2023년 9월 20일
0
post-thumbnail

<학습 내용>

배열

  • 인덱스로 바로 접근 가능
  • 값의 삽입, 삭제가 어렵다. 해당 인덱스 주변 값을 이동시키는 과정 필요
  • 배열을 크리는 선언할 때 지정하며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다
  • 구조가 간단하다

리스트

  • 값과 포인터를 묶은 노드를 포인터로 연결한 구조
  • 인덱스가 없어 head포인터부터 순서대로 접근해야 한다
  • 데이터 삽입, 삭제 연산속도가 빠르다
  • 선언시, 크기 지정이 필요하지 않다. 크기는 가변적
  • 포인터 저장 공간이 필요하여 구조가 복잡

파이썬에서는 배열과 리스트를 구분하지 않는다

스택과 큐

스택

  • 리스트에서발전한 형태의 자료구조
  • 삽입과 삭제 연산이 후입선출로 이루어 진다
  • 깊이우선탐색(DFS)에 효과적
    • top : 삽입과 삭제가 일어나는 위치
    • s.append(data): top위치에 새로운 데이터를 삽입하는 연산
    • s.pop(): top위치에 데이터를 삭제하고 확인하는 연산
    • s[-1] : top위치에 현재 있는 데이터를 단순확인하는 연산

  • 삽입과 삭제 연산이 선입선출로 이워지는 자료구조
  • deque를 이용하여 큐를 구현
  • 너비우선탐색(BFS)에서 자주 사용
    • rear: 큐에서 가장 끝 데이터를 가리키는 영역
    • front: 큐에서 가장 앞의 데이터를 가리키는 영역
    • s.append(data): rear부분에 새로운 데이터를 삽입하는 연산
    • s.popleft(): front부분에 있는 데이터를 삭제하고 확인하는 연산
    • s[0]: 큐의 맨 앞(front)에 있는 데이터를 확인할 때 사용하는 연산

0개의 댓글