본문 바로가기

자료구조16

[자료구조, 알고리즘] 리스트#2 - LinkedList 구현, syntax + develop tip [연결리스트 특징 및 구현할 때 생각해야할 것]- ArrayList는 배열(array)로 구현된 List, 연결리스트는 메모리에 동적으로 할당되는 데이터들을 하나의 리스트로 만듬- Node 인스턴스(object)를 동적으로 할당하되 하나의 리스트로 엮음 : LinkedList- 구현하면서 가장 중요하게 생각해야하는 것 : node간 연결방법, node를 순차적으로 탐색하는 방법 [자바스크립트로 LinkedList 구현하기(feat. 자바스크립트 프로토타입 기반 객체지향)]- node를 head로만 추가함=> head 와 tail 추가하는 방법을 구현하면됨=> 중간 node를 제어하는 방법도 생각해봅시다 : setRuleList 추가 - LinkedList 객체 : 추상화, private / public .. 2017. 9. 1.
[자료구조 알고리즘] 리스트#1 - ADT, ArrayList js구현, syntax tip [리스트 특징]- 1열에 나란히 데이터를 저장함 : 1줄로 연결된 형태, 탐색- 중복된 데이터를 허용함 - 데이터 참조가 쉬움, 내부적으로 index를 기반으로 first / next 동작 - 삭제 과정에서 이동이 빈번하게 일어남, 외부적으로는 index를 기준으로해서 옮기는 것이 아니라 first / next 함수를 호출해서 cursor를 움직임=> 탐색이 빈번하게 일어나는 기능에서 자료를 저장하는 구조로서는 부적합 [리스트 구현방법에 따른 종류]- 주의할 점 : 구현 방법에 따라 나눈 것이지 ADT가 다른 것이 아님- 순차리스트 : 배열을 가지고 구현한 리스트- 연결리스트 : 메모리 동적할당을 가지고 구현한 리스트 [C로 배운 리스트 자바스크립트로 구현하기]- 어차피 ADT가 달라지는 것도 아니고, .. 2017. 8. 26.
[자료구조, 알고리즘] 재귀호출 - 헷갈리면 모르는것 [특징 및 이해할 때 필요한 개념](1) 재진입 개념이 아닌 복사본 개념 : 스택에 쌓인 함수는 각각의 함수(2) 반복 : 이전의 연산에 기반해서 현재의 것을 연산할 때 사용 : 함수에서 함수를 호출=> 동일 패턴 반복 (3) 문제 -> 논리 세우기 -> 코드화 / 패턴화(함수, 0 - 1 - ---- - n-1 - n - n+1)(4) 메모리(코드) - CPU(연산) : 언어 런타임 별 메모리 할당 구조 살펴보기(5) 함수 호출 관계 - 순서 한번쯤 따져보기=> 호출한 함수가 모두 끝난 후(return) 되돌아와서 실행=> 수학의 함수 개념 : 정의역, 공역, 치역(특정 값을 도출해내기위한 패턴) (6) 성능상 좋지않으나(재귀 두갈래 이상 out of memory 조심) 간결한 코드 [예시](1) 팩토.. 2017. 8. 21.
[자료구조 알고리즘] 자료구조, 알고리즘, 함수(패턴), 빅-오 표기 [자료구조와 알고리즘]- 프로그램 : 데이터 표현(자료구조)하고, 표현된 데이터를 처리(알고리즘)하는 것임=> 어떤 자료구조를 사용했을 때 효율적(알고리즘 : 시간, 공간)으로 처리할 수 있을 것인가?=> 어떤 결과값을 리턴해내야하는가 : 어떤 결과가 필요한가부터 정하고 => 반 학생(36명) 중 아침을 먹고온 사람이 있는지 없는지 체크할 때 : 배열, 순차탐색 알고리즘 (1) 선형구조 : 리스트, 스택, 큐(2) 비선형구조 : 트리, 그래프(3) 파일구조 : 순차파일, 색인파일, 직접파일(4) 단순구조 : 정수, 실수, 문자, 문자열 - 알고리즘 맛 보기(1) 순차탐색알고리즘12345678int LSearch(int arr[], int len, int target){ for(int i=0; i 주변에 .. 2017. 7. 24.
[자바스크립트 자료구조] List [List]- 목록, 순서가 있는 일련의 집합체(몇번째 항목)- 리스트에 저장된 각 데이터 항목을 요소라 함, 프로그램의 가용메모리가 리스트에 저장할 수 있는 최대 요소 수- Array의 index 버림(빠른 검색X), 요소간의 순서가 중요, 빈 엘리먼트 허용X : 리스트 탐색을 통해 요소 추출- 빈틈없는 데이터 적재의 장점을 취한 자료구조 : Array는 index 자리에 value가 삭제되면 뻥 떠버림 - 메우기위한 로직 필요=> Array 단점 보완 : 크기 고정X(새로 빈 배열을 만들고 깊은 복사를 해서 만드는 방식이 아님) [List ADT]- ADT란? Abstract Data Type을 말함, 리스트 자료구조가 어떤 구현부를 가져야하는가를 인터페이스 제시하는 것- 예시 : 전기밥솥 ADT :.. 2017. 6. 13.
[자바스크립트 자료구조] 배열 [배열이란]- 보통 배열을 사용하는 용도는 묶음 단위로 데이터를 구분할 때 사용함- 기본적인 자료구조 [자바스크립트 배열]- 자바스크립트 배열은 객체 : 내장 객체(미리 만들어져있고, 사용하면 되는 객체)- 객체지만 내부적으로 배열로서 특화된 객체 : 배열 관련 프로퍼티- 자바스크립트 배열은 한 배열 내 다양한 타입의 요소를 포함시킬 수 있음 : 스크립트 언어가 대부분 그럼- 배열은 레퍼런스 타입 [자바스크립트 배열 생성 방법]1) [ ]를 이용한 배열 선언123456var numbers = []; /* for문을 통해 numbers 배열에 요소 추가 */for(var i = 0; i 2017. 5. 22.