![[Java, C++] AVL 트리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbxbvfR%2FbtsOeDP00sn%2FAAAAAAAAAAAAAAAAAAAAANAR5gmhtXdLv5lvLgBT8Oeb2r7Yt3hAHYd7XMN8CKPX%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DGN7n%252B1dKJ%252BelgyRuz5pelRnhyvY%253D)
본 게시글은 학부 강의 '자료구조', 온라인 강의 'Honglab Data Structure(https://www.honglab.ai/)' 그리고 강의 교재 '자바와 함께하는 자료구조의 이해'의 내용들을 바탕으로 이해한 내용을 정리하였습니다. AVL 트리(Hight Balanced Binary Trees)AVL 트리는 Adelson-Velskii & Landis Tree 라고도 한다. 만든 사람의 이름을 땄다.AVL 트리는 트리가 한쪽으로 치우치는 것을 방지하여 트리 높이의 균형을 유지균형(Balanced) 이진 트리 : 탐색, 삽입, 삭제 연산의 수행 시간 O(logn) 보장 AVL 트리는 삽입이나 삭제로 인해 균형이 어긋나면 회전 연산을 통해 트리의 균형을 유지한다. AVL 트리는 임의의 노..
![[Java, C++] 이진 탐색 트리(Binary Search Tree)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FddtcWv%2FbtsOdDWqSvS%2FAAAAAAAAAAAAAAAAAAAAAIdcjWOYSx_XqsYW1-qh2hHUsA8wENDFH4SUSNsaVif0%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DpNYLFIJpXe13rkN6zmYSwLS7kFY%253D)
본 게시글은 학부 강의 '자료구조', 온라인 강의 'Honglab Data Structure(https://www.honglab.ai/)' 그리고 강의 교재 '자바와 함께하는 자료구조의 이해'의 내용들을 바탕으로 이해한 내용을 정리하였습니다. 사전(Dictionary)저장된 데이터에 대해 탐색, 삽입, 삭제, 갱신 등의 연산을 수행할 수 있는 자료구조어찌보면 파이썬의 딕셔너리와 일맥상통. Key와 Value가 존재한다는 것. 탐색 트리저장된 데이터에 대해 접근, 탐색, 삽입, 삭제, 갱신 등의 연산을 수행할 수 있는 자료구조배열, 연결 리스트 : O(n) 시간스택, 큐 : 특정 응용에 적합한 자료구조이진 탐색 트리, AVL 트리, 2-3 트리, 2-3-4 트리, RB 트리, B-트리 이진..
![[Java, C++] 트리(Tree)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcJhh2e%2FbtsNSLArpOa%2FAAAAAAAAAAAAAAAAAAAAALChBSdzugtc2Da5m02lntcDBNE_y-fBOuUxRul13WZZ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D5hUDqIH%252BbSzq%252B6mg6F1dh7gJvlk%253D)
본 게시글은 학부 강의 '자료구조', 온라인 강의 'Honglab Data Structure(https://www.honglab.ai/)' 그리고 강의 교재 '자바와 함께하는 자료구조의 이해'의 내용들을 바탕으로 이해한 내용을 정리하였습니다. 트리 배열이나 연결 리스트 - 데이터를 일렬로 저장하므로 탐색을 순차적으로 수행정렬된 배열에서는 이진 탐색을 통해 효율적인 탐색이 가능하지만, 삽입 / 삭제 후 정렬 상태를 유지하기 때문에 O(n) 시간일반적인 트리(General Tree)는 트리를 거꾸로 세워놓은 형태의 자료구조HTML과 XML의 문서 트리, 자바 클래스 계층구조, 운영체제의 파일시스템, 탐색트리, 이항(Binomial) 힙, 피보나치(Fibonacci) 힙과 같은 우선순위 큐공집합도 트리..
![[Java, C++] 스택(Stack)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbOifqJ%2FbtsNAQvXgKX%2FAAAAAAAAAAAAAAAAAAAAANBgTglcbI7Oz0OVhnIKQVXx8YH05pUGkWmAiAgecCOC%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DyJpOnt9Qj45dugQN5KSjvN6YM7c%253D)
본 게시글은 학부 강의 '자료구조', 온라인 강의 'Honglab Data Structure(https://www.honglab.ai/)' 그리고 강의 교재 '자바와 함께하는 자료구조의 이해'의 내용들을 바탕으로 이해한 내용을 정리하였습니다. 스택(Stack)한쪽 끝에서만 항목 삽입 / 삭제하는 자료구조새 항목을 저장하는 연산 : pushTop 항목을 삭제하는 연산 : pop후입 선출(Last-In First-Out, LIFO) 배열로 구현한 스택마지막 index를 top에 가지고 있다.A[++top;] = "망고"A[top++;] = "망고"는 틀린 문법! 주의할 것 단순 연결 리스트로 구현한 스택정의된 스택대로 사용하는게 제일 효율적이다. 배열로 구현한 ArrayStack class..
![[Java] 배열(Array)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FkEJ5p%2FbtsNttTLclp%2FAAAAAAAAAAAAAAAAAAAAAOH794IO5isjTmRTYt1CGP0uFvdRvHn0x2IRyrDB1d68%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Djg0%252Bdm9RwUNVRASDbLdDrP8tJqA%253D)
본 게시글은 학부 강의 '자료구조', 온라인 강의 'Honglab Data Structure(https://www.honglab.ai/)' 그리고 강의 교재 '자바와 함께하는 자료구조의 이해'의 내용들을 바탕으로 이해한 내용을 정리하였습니다. 배열(Array) 동일한 타입의 원소들이 연속적인 메모리 공간에 할당되어 각 항목이 하나의 원소에 저장되는 기본적인 자료구조특정 원소에 접근할 때에는 배열의 인덱스로 O(1) 시간에 접근새 항목을 배열 중간에 삽입하거나 중간에 있는 항목을 삭제하면, 뒤따르는 항목들을 1칸씩 뒤로 또는 앞으로 이동 : O(n) 시간 a는 배열 이름인 동시에 배열의 첫번째 원소의 레퍼런스를 저장a[i]는 인덱스 i를 가지는 원소를 가리키는 레퍼런스a[i]는 a가..