쪽수
ISBN
브랜드
강력해진 자바스크립트를 정말 제대로 즐겨라!
자바스크립트는 Node.js, 스파이더몽키 등의 플랫폼을 보유한 서버 사이드 컴퓨터 프로그래밍 언어로 점점 입지를 굳혔다. 요즘은 자바스크립트의 쓰임이 브라우저 외부 영역으로 확장되면서 자바스크립트 프로그래머는 C++, 자바 같은 일반 프로그래밍 언어에서 제공하는 다양한 도구(연결 리스트, 스택, 큐, 그래프, 데이터 정렬 알고리즘과 검색 알고리즘 등 전통적인 자료구조와 알고리즘 등)가 필요하게 되었다. 이 책은 다양한 자료구조와 알고리즘의 입출력 데이터를 설명할 뿐만 아니라 어디에 무엇이 가장 적합한 해법인지도 알려준다.
【대상 독자】
· HTML, 자바스크립트, CSS, 자바 프로그래밍에 익숙한 웹 앱 개발자
· '해보면서 배우는' 사람들과 표준 개발 도구를 이용해서 새로운 기술과 기법을 적용하는 실제 예제를 보고 만들기를 선호하는 사람
【이 책에서 다루는 내용】
· 배열과 리스트 : 가장 기본이 되는 자료구조
· 스택과 큐 : 좀 더 복잡한 리스트형 자료구조
· 연결 리스트 : 배열의 단점을 개선한 자료구조
· 딕셔너리 : 키와 값 쌍으로 데이터 저장
· 해싱 : 자료를 빠르게 삽입하거나 가져올 수 있는 자료구조
· 집합 : 모든 데이터가 고유한 상황일 때 적합한 자료구조
· 이진 트리 : 계층적으로 데이터 저장
· 그래프와 그래프 알고리즘 : 네트워크 형태의 자료구조를 구성하는 데 적합
· 알고리즘 : 데이터 정렬과 검색에 유용한 알고리즘
· 고급 알고리즘 : 동적 프로그래밍과 탐욕 알고리즘
【부분별 요약】
· 1장 - 자바스크립트 언어의 개요와 이 책에서 사용하는 자바스크립트의 기능을 설명한다. 또한 이 책 전체에서 사용하는 프로그래밍 형식도 설명한다.
· 2장 - 컴퓨터 프로그래밍에서 가장 흔히 사용하는 자료구조며, 자바스크립트의 네이티브 형식인 배열을 설명한다.
· 3장 - 첫 번째 자료구조인 리스트를 소개한다.
· 4장 - 스택 자료구조를 설명한다. 스택은 컴파일러, 운영체제 구현에서 폭넓게 사용하는 자료구조다.
· 5장 - 큐 자료구조를 설명한다. 큐는 은행이나 슈퍼에 줄을 선 사람들을 추상화한 자료구조다. 보통 차례로 데이터를 처리해야 하는 시뮬레이터 소프트웨어에서 큐를 광범위하게 사용한다.
· 6장 - 연결 리스트를 설명한다. 연결 리스트는 리스트 자료구조를 변형시킨 형태로 각 요소가 별도의 객체며 각 객체끼리 서로 연결되어 있는 자료구조다. 연결 리스트는 데이터를 자주 삽입하거나 삭제하는 프로그램에 효율적인 자료구조다.
· 7장 - 키와 값 쌍으로 데이터를 저장하는 자료구조인 딕셔너리를 만들고 사용하는 방법을 설명한다.
· 8장 - 딕셔너리를 구현하는 방법 중 하나로 해시 테이블을 이용할 수 있다. 해시 테이블과 해시 알고리즘을 이용해 테이블에 데이터를 저장하는 방법을 설명한다.
· 9장 - 세트 자료구조를 설명한다. 자료구조 책에서는 세트를 생략할 때가 종종 있다. 세트는 중복된 데이터를 포함하지 않는 상황에 적합한 자료구조다.
· 10장 - 이진 트리와 이진 탐색 트리를 설명한다. 이전에도 설명했듯이 이진 탐색 트리는 정렬된 형태로 데이터를 저장해야 할 때 유용한 자료구조다.
· 11장 - 그래프와 그래프 알고리즘을 설명한다. 그래프는 컴퓨터 네트워크의 노드나 지도의 도시 등과 같은 데이터를 표현하는 데 사용하는 자료구조다.
· 12장 - 자료구조가 아닌 알고리즘을 중심으로 살펴본다. 특히 작은 데이터를 처리하는 데 적합하며 구현하기 쉬운 간단한 정렬 알고리즘부터 대용량 데이터 세트를 처리하는 데 적합하며 다소 복잡한 알고리즘까지 다양한 알고리즘을 설명한다.
· 13장 - 순차 검색, 이진 검색 등 검색 관련 알고리즘을 설명한다.
· 14장 - 동적 프로그래밍, 탐욕 알고리즘과 같은 고급 알고리즘을 설명한다. 기존의 알고리즘으로는 너무 느리거나 구현하기가 너무 어려울 때 14장에서 소개하는 고급 알고리즘을 사용할 수 있다. 동적 프로그래밍, 탐욕 알고리즘을 이용해 전통적인 문제를 해결하는 예제도 보여준다.
CHAPTER 1 자바스크립트 프로그래밍 환경과 모델
1.1 자바스크립트 환경
1.2 자바스크립트 프로그래밍 기초
1.3 객체와 객체지향 프로그래밍
1.4 마치며
CHAPTER 2 배열
2.1 자바스크립트 배열 정의
2.2 배열 사용하기
2.3 접근자 함수
2.4 변형자 함수
2.5 반복자 함수
2.6 이차원 배열과 다차원 배열
2.7 객체를 요소로 포함하는 배열
2.8 객체에 포함된 배열
2.9 연습문제
CHAPTER 3 리스트
3.1 리스트 ADT
3.2 List 클래스 구현
3.3 리스트와 반복
3.4 리스트 기반 애플리케이션
3.5 연습문제
CHAPTER 4 스택
4.1 스택 동작
4.2 스택 구현
4.3 Stack 클래스 이용하기
4.4 연습문제
CHAPTER 5 큐
5.1 큐 동작
5.2 배열 기반의 Queue 클래스 구현
5.3 Queue 클래스 사용하기: 스퀘어 댄스 파티에서 파트너 정하기
5.4 큐로 데이터 정렬하기
5.5 우선순위 큐
5.6 연습문제
CHAPTER 6 연결 리스트
6.1 배열의 단점
6.2 연결 리스트 정의
6.3 객체 기반 연결 리스트 설계
6.4 양방향 연결 리스트
6.5 순환형 연결 리스트
6.6 기타 연결 리스트 함수
6.7 연습문제
CHAPTER 7 딕셔너리
7.1 Dictionary 클래스
7.2 Dictionary 클래스의 부가 함수
7.3 Dictionary 클래스에 정렬 기능 추가하기
7.4 연습문제
CHAPTER 8 해싱
8.1 해싱 개요
8.2 해시 테이블 클래스
8.3 충돌 처리
8.4 연습문제
CHAPTER 9 집합
9.1 집합의 핵심 정의, 동작, 속성
9.2 Set 클래스 구현
9.3 집합의 추가 동작
9.4 연습문제
CHAPTER 10 이진 트리와 이진 검색 트리
10.1 트리 정의
10.2 이진 트리와 이진 검색 트리
10.3 BST 검색
10.4 BST의 노드 삭제하기
10.5 발견 횟수 계산
10.6 연습문제
CHAPTER 11 그래프와 그래프 알고리즘
11.1 그래프 정의
11.2 실생활에 사용되는 그래프
11.3 Graph 클래스
11.4 그래프 검색
11.5 최단 경로 찾기
11.6 위상 정렬
11.7 연습문제
CHAPTER 12 정렬 알고리즘
12.1 배열 테스트 베드
12.2 기본 정렬 알고리즘
12.3 고급 정렬 알고리즘
12.4 연습문제
CHAPTER 13 검색 알고리즘
13.1 순차 검색
13.2 이진 검색
13.3 텍스트 데이터 검색
13.4 연습문제
CHAPTER 14 고급 알고리즘
14.1 동적 프로그래밍
14.2 탐욕 알고리즘
14.3 연습문제
전체 평점
2.3
내용 오류
2/3 부근
기술 오류
prev() 메소드
표기 오류
첫번째 코드 블럭 6번째 줄
기술 오류
3번째 소스코드
기술 오류
상단 put() 함수, 하단 get() 함수
22,000원
10%
19,800원