Data Structure and Algorithm: Difference between revisions
From Innovation
No edit summary |
|||
Line 26: | Line 26: | ||
#* Hash Table | #* Hash Table | ||
#* Graph | #* Graph | ||
=== Syllabus (T.B.D.) === | |||
# 배열 vs 포인터 | |||
#* 개념 | |||
#* 크기 정하기 | |||
#* 메모리 할당 | |||
#* 포인터 연산자의 이해 | |||
#* 포인터 이해 연습문제 | |||
# 자료구조 | |||
#* 사전 학습: 자료구조란 무엇인가. 왜 써야하는가. 어디에 쓰일까. 친구와 토론하고 결론을 한 페이지로 정리해서 오기 | |||
#* 개념 이해 | |||
#* 포인터 연산자 추가 | |||
# 복잡도 | |||
#* 사전학습: | |||
#* 표기법 | |||
#* 숙제: | |||
# 링크드 리스트 | |||
#* 사전학습: 링크드 리스트란 무엇인가. 실 생활에 링크드리스트로 표현 가능 것들은 무엇일까. 링크드리스트로 표현 가능한 것을 배열로 표현할 수 없을까. 배열 대신 링크드리스트를 써야하는 상황과 이유는 무엇일까. 친구와 토론하고 내용을 1페이지로 정리하기 | |||
#* 개념잡기 | |||
#* 리스트에서 특정 값 탐색 | |||
#* 앞 중간 끝 삽입 삭제 동작 | |||
# 스택 | |||
#* 사전 학습: 스택이란 무엇인가. 실생활에 스택의 사용 실제 사례. 링크드 리스트로 스택 구현한다면. 배열로 스택 구현한다면. 어떤 경우에 배열을 쓰고 링크드리스트로 쓸까. 토론하고 내용을 1페이지로 정리하기 | |||
#* 개념 잡기 | |||
#* 자료구조: 배열 vs 포인터 | |||
#* 크기 정하기: 스태틱 vs 다이나믹 | |||
#* 입력과 삭제 동작 | |||
#* 숙제: 계산기 만들기 | |||
#큐 | |||
#* 사전학습: 큐는 무엇인가. 실 생활에 사용 예제는. 스택 두개로 큐를 구현하기. 토론하고 내용을 1페이지로 정리하기 | |||
#* 개념잡기 | |||
#* 자료구조 | |||
#* 입력과 삭제 동작 | |||
#* 숙제: | |||
# 바이너리 트리 | |||
#* 사전학습: 바이너리 트리의 개념 잡기. 정렬이 되어 있는 자료(예: 사전)에서 자료를 찾는 방법과 바이너리 트리를 사용한 방법을 비교해보기. 바이너리 트리로 표현 가능한 것들이 무엇이 있을까. | |||
#* 바이너리 트리 개념 잡기 | |||
#* 용어 정리 | |||
#* 자료구조: 배열과 포인터 | |||
#* 특정 값 찾기 | |||
#* 리프노드 삽입과 삭제 | |||
#* 중간 노드 삽입과 삭제 | |||
#* 루트 노드 삽입과 삭제 | |||
#* 숙제: |
Revision as of 18:32, 6 February 2018
Text Book
Supplementary Text Book
- [영어] "Data Structures and Algorithms Made Easy," by Narashima Karumanchi, CareerMonk Publication
- [한국어] "C 언어로 쉽게 풀어쓴 자료 구조," 천인국 저, 생능출판사 (부록으로 자료 구조의 개념을 이해할 수 있는 플래시 애니메이션 수록)
- [한국어] "뇌를 자극하는 알고리즘," 박상현 저, 한빛미디어 (온라인 학습사이트 - go)
- [한국어] "윤성우의 열혈 자료구조 - C언어를 이용한 자료구조 학습서," 윤성우, 오렌지미디어 (온라인 무료 강의 제공)
- [한국어] "사전처럼 바로 찾아 쓰는 알고리즘 - 바로 동작하는 실전 코드로 정리한 알고리즘 사전,"조지 T. 하인만, 게리 폴리케, 스탠리 셀코 저, 전경원 역, 한빛미디어
Topics
- Backgrounds
- Array
- Pointer
- Memory allocation
- Data structure
- Recursion
- Time complexity of algorithms
- Data Structure
- Stack
- Queue
- Linked List
- Binary Tree
- Algorithms
- Sorting
- Searching
- Hash Table
- Graph
Syllabus (T.B.D.)
- 배열 vs 포인터
- 개념
- 크기 정하기
- 메모리 할당
- 포인터 연산자의 이해
- 포인터 이해 연습문제
- 자료구조
- 사전 학습: 자료구조란 무엇인가. 왜 써야하는가. 어디에 쓰일까. 친구와 토론하고 결론을 한 페이지로 정리해서 오기
- 개념 이해
- 포인터 연산자 추가
- 복잡도
- 사전학습:
- 표기법
- 숙제:
- 링크드 리스트
- 사전학습: 링크드 리스트란 무엇인가. 실 생활에 링크드리스트로 표현 가능 것들은 무엇일까. 링크드리스트로 표현 가능한 것을 배열로 표현할 수 없을까. 배열 대신 링크드리스트를 써야하는 상황과 이유는 무엇일까. 친구와 토론하고 내용을 1페이지로 정리하기
- 개념잡기
- 리스트에서 특정 값 탐색
- 앞 중간 끝 삽입 삭제 동작
- 스택
- 사전 학습: 스택이란 무엇인가. 실생활에 스택의 사용 실제 사례. 링크드 리스트로 스택 구현한다면. 배열로 스택 구현한다면. 어떤 경우에 배열을 쓰고 링크드리스트로 쓸까. 토론하고 내용을 1페이지로 정리하기
- 개념 잡기
- 자료구조: 배열 vs 포인터
- 크기 정하기: 스태틱 vs 다이나믹
- 입력과 삭제 동작
- 숙제: 계산기 만들기
- 큐
- 사전학습: 큐는 무엇인가. 실 생활에 사용 예제는. 스택 두개로 큐를 구현하기. 토론하고 내용을 1페이지로 정리하기
- 개념잡기
- 자료구조
- 입력과 삭제 동작
- 숙제:
- 바이너리 트리
- 사전학습: 바이너리 트리의 개념 잡기. 정렬이 되어 있는 자료(예: 사전)에서 자료를 찾는 방법과 바이너리 트리를 사용한 방법을 비교해보기. 바이너리 트리로 표현 가능한 것들이 무엇이 있을까.
- 바이너리 트리 개념 잡기
- 용어 정리
- 자료구조: 배열과 포인터
- 특정 값 찾기
- 리프노드 삽입과 삭제
- 중간 노드 삽입과 삭제
- 루트 노드 삽입과 삭제
- 숙제: