녹화 강의를 듣고 줌 수업을 진행했다

별 내용은 없었다

 

아래는 줌 수업 들으면서 정리한 내용

맨 밑에 구현해보기랑 실습하기는 정리해서 올려야겠

학습 목표

기본 자료 구조인 배열(array)과 연결리스트(linked list)의 개념을 이해하고 python으로 구현하는 방법을 학습한다.

기본 데이터 구조의 개념

  • 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적 관계
  • 컴퓨터에서 처리해야하는 많은 데이터를 모아 효율적으로 관리 및 구조화하기 위해 사용
Linear 자료구조 순서가 정해져있는 자료구조 순차적으로 데이터에 접근 Array. Linked List, Stack, Queue
Non Linear 자료구조 순서에 상관없이 데이터를 저장 기본 자료구조를 다양하게 적용하여 표현 데이터에 접근하기 위해 규칙이 있어야 함 Tree, Graph

Stack, Queue, Tree, Graph는 기본 자료구조(Array, Linked List)를 활용하여 구현 가능

Array 개념

Array

  • 일련의 순서로 데이터를 저장(순차적)
  • 일련의 번호와 번호에 대응하는 데이터로 이루어진 자료구조
  • 쉽고 사용이 편함
  • 메모리 효율성이 낮음
  • 데이터 접근이 빠름

Element(원소)

  • Array에 저장된 객체
  • 각 원소는 0, 1, 2 순으로 index를 받음
  • Data Type은 상관없음(int, float 등)
  • 서로 다른 자료형을 같이 저장 가능

Python 자료형

  • Mutable 자료형: List, Dictionary, Set → 값 변경 가능
  • Immutable 자료형: Number, Char, Tuple → 값 변경 불가

Linked List

Pointer

  • 다음 또는 이전의 노드와의 연결(주소값)을 담당

Linked List

  • 노드(데이터, 포인터)가 한 줄로 연결되어 있는 방식
  • 개념이 복잡하고 구현이 어려움
  • 메모리 사용 효율성이 높음
  • 데이터 접근이 느림
  • 단일 연결 리스트 / 이중 연결 리스트 / 원형 연결 리스트

List vs Array

List in python Array
다양한 종류의 데이터를 담을 수 있음 반복문으로 연산을 수행하기에 상대적으로 수행속도 느림 연산 처리 시 전체 리스트로 연산 동일한 종류의 데이터만 담을 수 있음 연속된 메모리에 데이터를 저장 간단한 연산 처리가 가능하고 수행 속도 빠름 연산 처리 시 각 요소별로 연산

1차원 Array 값 추가 / 삭제

  • 추가: append / insert
  • 삭제: del / pop / remove

(구현해보기)

Copy와 Deep Copy

: 주소를 가리키는 것과 값만 복사

(조사해보기)

Any와 Sequence

(조사해보기) 실습 #1

실습1,2,3 하기

실습a: python으로 array 만들고 데이터 저장 및 삭제해보기

실습b: python으로 linked list 만들고 데이터 access(simple linked list)

+ Recent posts