분류 전체보기
패스트캠퍼스 챌린지 21일차
강의 날짜 : 2021/11/21 시청 강의 : 은근히 어려운 자료구조 : 링크드 리스트(4) 드디어 링크드 리스트 강의가 끝났다. 나는 어제 마저 공부하다 올린 원형 링크드 리스트 구현을 마저 올리도록 하겠다. 원형 링크드 리스트(2) 맨 뒤에 새로운 노드 추가 static Node addEnd(Node last, int data) { if (last == null) return addToEmpty(last, data); Node temp = new Node(); temp.data = data; temp.next = last.next; last.next = temp; last = temp; return last; } 특정 노드 뒤에 추가 static Node addAfter(Node last, int ..
패스트캠퍼스 챌린지 20일차
강의 날짜: 11/20/2021 시청 강의: 은근히 어려운 자료구조 : 링크드 리스트(3) 오늘 강의도 여전히 링크드 리스트이다. 링크드 리스트 강의가 하나 더 남았던데 이번 주는 링크드 리스트만 한 기분이다 ㅋㅋ 오늘 나간 강의도 더블리 링크드 리스트에 관련된 내용이라 어제 미리 다 정리해두었기 때문에 오늘은 원형 연결 리스트에 대해 정리해보려고 한다. 원형 링크드리스트 기본 구조 public class CicularLinkedList{ Node head; // head of list class Node { int data; Node next; Node(int d) { data = d; } //next는 null로 초기화된다 } } 비어있는 리스트에 노드 추가 static Node addToEmpty(..
패스트캠퍼스 챌린지 19일차
강의 날짜: 11/19/2021 시청 강의: 은근히 어려운 자료구조 : 링크드 리스트(2) 오늘 강의에서는 어제 정리해놓은 링크드 리스트 구현하기에 대한 내용이었다. 이미 어제 정리했고, 내용이 많이 부족한 것 같아 이중 링크드 리스트에 대해 정리하겠다. Doubly LinkedList (이중 연결 리스트) 이중 연결 리스트는 하나의 노드에 두 개의 링크가 존재한다. 각 노드는 이전 노드의 참조 링크와, 다음 노드의 참조링크를 가지고 있다 전체 노드를 순회해야 이전 노드를 찾을 수 있는 단일 연결 리스트와는 다르게, 이중 연결 리스트는 이전 노드의 링크를 통해 O(1)의 시간 복잡도로 이전 노드를 찾을 수 있다 노드의 추가와 제거가 단일 연결 리스트보다 많은 작업을 해야 한다 작업이 더 단순하고 잠재적으..
패스트캠퍼스 챌린지 18일차
강의 날짜: 11/18/2021 시청 강의: 은근히 어려운 자료구조 : 링크드 리스트 LinkedList 정의 연결 리스트 (Linked List)로 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어있는 방식의 자료 구조. 링크드 리스트는 인덱스가 존재하지 않기 때문에 검색 및 수정 시 첫 번째 노드부터 순차적으로 모든 노드를 탐색해야 한다 → 시간 복잡도 : O(1) 특정 위치(index)로 삽입/삭제/탐색해야 하는 경우는 O(n) 이 걸린다. 따라서, 탐색을 자주해야 한다면 배열을 사용하고, 데이터의 추가/삭제가 많은 경우에 연결 리스트를 사용하는 것이 좋다. 연결 리스트는 단일 연결리스트, 이중 연결리스트, 원형 연결리스트가 있다. 단일 연결리스트 (Singly Linked List) 단일 연결..
패스트캠퍼스 챌린지 17일차
시청 날짜 : 11/17/2021 시청 강의 : 스택 Stack 데이터를 제한적으로 접근할 수 있는 구조 -> 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 스택도 큐와 마찬가지로 https://visualgo.net/en/list에서 시뮬레이션해볼 수 있음. LIFO (Last in First Out) 가장 나중에 쌓은 데이터를 가장 먼저 뺄 수 있는 데이터 구조 FILO라고도 함 대표적인 스택의 활용 : 컴퓨터 내부 프로세스 구조의 함수 동작 방식 용어 push() : 데이터를 스택에 넣기 pop() : 데이터를 스택에서 꺼내기 peek() : 스택에 가장 마지막의 데이터 확인 장점 구조가 단순해서 구현이 쉽다 데이터 저장/읽기 속도가 빠름 단점 일반적인 스택 구현 시, 데이터 최대 개수를 미리 정해..
패스트캠퍼스 챌린지 16일차
시청 날짜 : 11/16/2021 시청 강의 : 큐 프로그래밍 중 가장 많이 쓰이는 자료구조 중 하나 : Data in and Data out 만 가능 https://visualgo.net/en/list의 queue탭에서 시뮬레이션 가능 FIFO (First in, First out) LILO라고도 불림 (last in last out) 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 (스택과 반대) front (앞)에선 무조건 삭제가 일어나고, rear(뒤, tail이라고도 함) 에선 무조건 삽입이 일어난다 "줄 서기"와 동일 용어 enqueue : 큐에 데이터를 넣는 기능 dequeue : 큐에서 데이터를 꺼내는 기능 peek : 맨 앞의 데이터가 무엇인지 훔쳐보는 기능 (literarlly ..