분류 전체보기

    패스트캠퍼스 챌린지 21일차

    패스트캠퍼스 챌린지 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일차

    패스트캠퍼스 챌린지 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일차

    패스트캠퍼스 챌린지 19일차

    강의 날짜: 11/19/2021 시청 강의: 은근히 어려운 자료구조 : 링크드 리스트(2) 오늘 강의에서는 어제 정리해놓은 링크드 리스트 구현하기에 대한 내용이었다. 이미 어제 정리했고, 내용이 많이 부족한 것 같아 이중 링크드 리스트에 대해 정리하겠다. Doubly LinkedList (이중 연결 리스트) 이중 연결 리스트는 하나의 노드에 두 개의 링크가 존재한다. 각 노드는 이전 노드의 참조 링크와, 다음 노드의 참조링크를 가지고 있다 전체 노드를 순회해야 이전 노드를 찾을 수 있는 단일 연결 리스트와는 다르게, 이중 연결 리스트는 이전 노드의 링크를 통해 O(1)의 시간 복잡도로 이전 노드를 찾을 수 있다 노드의 추가와 제거가 단일 연결 리스트보다 많은 작업을 해야 한다 작업이 더 단순하고 잠재적으..

    패스트캠퍼스 챌린지 18일차

    패스트캠퍼스 챌린지 18일차

    강의 날짜: 11/18/2021 시청 강의: 은근히 어려운 자료구조 : 링크드 리스트 LinkedList 정의 연결 리스트 (Linked List)로 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어있는 방식의 자료 구조. 링크드 리스트는 인덱스가 존재하지 않기 때문에 검색 및 수정 시 첫 번째 노드부터 순차적으로 모든 노드를 탐색해야 한다 → 시간 복잡도 : O(1) 특정 위치(index)로 삽입/삭제/탐색해야 하는 경우는 O(n) 이 걸린다. 따라서, 탐색을 자주해야 한다면 배열을 사용하고, 데이터의 추가/삭제가 많은 경우에 연결 리스트를 사용하는 것이 좋다. 연결 리스트는 단일 연결리스트, 이중 연결리스트, 원형 연결리스트가 있다. 단일 연결리스트 (Singly Linked List) 단일 연결..

    패스트캠퍼스 챌린지 17일차

    패스트캠퍼스 챌린지 17일차

    시청 날짜 : 11/17/2021 시청 강의 : 스택 Stack 데이터를 제한적으로 접근할 수 있는 구조 -> 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 스택도 큐와 마찬가지로 https://visualgo.net/en/list에서 시뮬레이션해볼 수 있음. LIFO (Last in First Out) 가장 나중에 쌓은 데이터를 가장 먼저 뺄 수 있는 데이터 구조 FILO라고도 함 대표적인 스택의 활용 : 컴퓨터 내부 프로세스 구조의 함수 동작 방식 용어 push() : 데이터를 스택에 넣기 pop() : 데이터를 스택에서 꺼내기 peek() : 스택에 가장 마지막의 데이터 확인 장점 구조가 단순해서 구현이 쉽다 데이터 저장/읽기 속도가 빠름 단점 일반적인 스택 구현 시, 데이터 최대 개수를 미리 정해..

    패스트캠퍼스 챌린지 16일차

    패스트캠퍼스 챌린지 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 ..