개인 공부 복습/자료구조 6

4-2 연결 리스트 : 더미 노드를 추가하는 이유

링크드 리스트 더미 노드 기반 연결 리스트 더미 노드를 추가하는 이유 : 1.삽입 및 삭제 단순화: - 더미 노드를 사용하는 주요 이유 중 하나는 연결 목록 시작 부분에서 삽입 및 삭제 작업을 단순화하기 위한 것입니다. 더미 노드가 없으면 연결 목록의 헤드에 새 노드를 삽입하려면 포인터를 새 헤드로 업데이트해야 하므로 특별한 처리가 필요합니다. 마찬가지로 헤드 노드를 삭제하려면 헤드 포인터를 업데이트하기 위한 특별한 처리가 필요합니다. - 더미 노드를 사용하면 실제 헤드 노드 앞에 항상 유효한 "이전" 노드(더미 노드)가 있습니다. 목록의 시작 부분에 있든 다른 곳에 있든 관계없이 목록의 모든 노드를 균일하게 처리할 수 있으므로 삽입 및 삭제 작업이 단순화됩니다. 2. 일관된 구조: -더미 노드가 있는 ..

배열을 이용한 리스트의 구현

리스트의 이해 리스트는 크게 2가지 : 순차 리스트 :배열을 기반으로 구현된 리스트 연결 리스트 :메모리의 동적 할당을 기반으로 구현된 리스트 리스트의 특징 : 저장 형태 : 데이터를 나란히(하나의 열로) 저장한다. 저장 특성 : 중복이 되는 데이터의 저장을 허용한다. 리스트 자료구조는 무엇이냐? 데이터의 저장과 참조와 삭제가 목적인 자료구조 이다. 배열 기반 리스트의 단점 배열의 길이가 초기에 결정되어야 한다. 변경이 불가능하다. 삭제의 과정에서 데이터의 이동(복사)가 매우 빈번히 일어난다. 배열 기반 리스트의 장점 데이터 참조가 쉽다. 인덱스 값 기준으로 어디든 한 번에 참조 가능! 참고 : 열혈 자료구조

2-2 재귀 활용

피보나치 수열 int fibo(int _n) { if(_n == 1) return 0; else if(_n == 2) return 1; else return fibo(n-1) + fibo(n-2); } n은 3이상 0, 1, 1, 2, 3, 5, 8, 13, 21, 34... 재귀 이진탐색 int BSearchRecur(int ar[], int first, int last, int target) 매개변수 ar[]은 찾을 탐색의 값이 들어간 배열 매개변수 first는 첫번째, last는 배열의 마지막 크기, target찾는 대상 ar[mid] 보다 타겟이 작으면 mid 보다 mid-1작은 수와 first를 다시 비교 ar[mid] 보다 타겟이 크면 mid보다 mid+1큰수와 last를 다시 비교 이진탐색은..

01-1 자료구조에 대한 기본적인 이해 복습

프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다. ‘데이터 표현’ == ‘데이터 저장’ 데이터의 저장을 담는 것을 자료구조라고 한다. 자료구조의 분류 자료구조 - 단순형, 복합형 - 단순형 : int, long, double,float - 복합형 : 선형(Linear), 비선형(Non-Linear) --선형 : 정적 자료구조(Static), 동작자료구조(Dynamic) ---정적 자료구조 : 배열 ---동적 자료구조 : 링크드 리스트, 큐, 스택 --비선형 : 트리, 그래프 의문점 : vector는 자료구조가 아닌가? 답 : vector는 array와 유사하며 동적 배열구조 클래스 라고 함 선형 자료구조 : 선형의 의미는 선의 형태 즉 나란히 또는 일렬로 저장하는 방식 비선형 자료..