Data Structure and Algorithm

From Innovation
Revision as of 18:32, 6 February 2018 by James (talk | contribs)
Jump to: navigation, search

Text Book

Supplementary Text Book

  1. [영어] "Data Structures and Algorithms Made Easy," by Narashima Karumanchi, CareerMonk Publication
  2. [한국어] "C 언어로 쉽게 풀어쓴 자료 구조," 천인국 저, 생능출판사 (부록으로 자료 구조의 개념을 이해할 수 있는 플래시 애니메이션 수록)
  3. [한국어] "뇌를 자극하는 알고리즘," 박상현 저, 한빛미디어 (온라인 학습사이트 - go)
  4. [한국어] "윤성우의 열혈 자료구조 - C언어를 이용한 자료구조 학습서," 윤성우, 오렌지미디어 (온라인 무료 강의 제공)
  5. [한국어] "사전처럼 바로 찾아 쓰는 알고리즘 - 바로 동작하는 실전 코드로 정리한 알고리즘 사전,"조지 T. 하인만, 게리 폴리케, 스탠리 셀코 저, 전경원 역, 한빛미디어

Topics

  1. Backgrounds
    • Array
    • Pointer
    • Memory allocation
    • Data structure
    • Recursion
    • Time complexity of algorithms
  2. Data Structure
    • Stack
    • Queue
    • Linked List
    • Binary Tree
  3. Algorithms
    • Sorting
    • Searching
    • Hash Table
    • Graph


Syllabus (T.B.D.)

  1. 배열 vs 포인터
    • 개념
    • 크기 정하기
    • 메모리 할당
    • 포인터 연산자의 이해
    • 포인터 이해 연습문제
  2. 자료구조
    • 사전 학습: 자료구조란 무엇인가. 왜 써야하는가. 어디에 쓰일까. 친구와 토론하고 결론을 한 페이지로 정리해서 오기
    • 개념 이해
    • 포인터 연산자 추가
  3. 복잡도
    • 사전학습:
    • 표기법
    • 숙제:
  4. 링크드 리스트
    • 사전학습: 링크드 리스트란 무엇인가. 실 생활에 링크드리스트로 표현 가능 것들은 무엇일까. 링크드리스트로 표현 가능한 것을 배열로 표현할 수 없을까. 배열 대신 링크드리스트를 써야하는 상황과 이유는 무엇일까. 친구와 토론하고 내용을 1페이지로 정리하기
    • 개념잡기
    • 리스트에서 특정 값 탐색
    • 앞 중간 끝 삽입 삭제 동작
  5. 스택
    • 사전 학습: 스택이란 무엇인가. 실생활에 스택의 사용 실제 사례. 링크드 리스트로 스택 구현한다면. 배열로 스택 구현한다면. 어떤 경우에 배열을 쓰고 링크드리스트로 쓸까. 토론하고 내용을 1페이지로 정리하기
    • 개념 잡기
    • 자료구조: 배열 vs 포인터
    • 크기 정하기: 스태틱 vs 다이나믹
    • 입력과 삭제 동작
    • 숙제: 계산기 만들기
    • 사전학습: 큐는 무엇인가. 실 생활에 사용 예제는. 스택 두개로 큐를 구현하기. 토론하고 내용을 1페이지로 정리하기
    • 개념잡기
    • 자료구조
    • 입력과 삭제 동작
    • 숙제:
  6. 바이너리 트리
    • 사전학습: 바이너리 트리의 개념 잡기. 정렬이 되어 있는 자료(예: 사전)에서 자료를 찾는 방법과 바이너리 트리를 사용한 방법을 비교해보기. 바이너리 트리로 표현 가능한 것들이 무엇이 있을까.
    • 바이너리 트리 개념 잡기
    • 용어 정리
    • 자료구조: 배열과 포인터
    • 특정 값 찾기
    • 리프노드 삽입과 삭제
    • 중간 노드 삽입과 삭제
    • 루트 노드 삽입과 삭제
    • 숙제: