memo head의 역할 가장 첫 번째의 주소값을 가리킨다. add 메소드에서 if로 인덱스를 검사하는 경우 추가되지 않은 상태에서 size+1이 되었다고 생각하는 것이 맞는지 궁금궁금 int indexOf(T item) 찾고있는 데이터와 같은 데이터를 가진 노드의 인덱스를 반환 연결 리스트의 노드들을 처음부터 순서대로 방문하는 것을 순회(traverse)한다고 말한다. indexOf 메소드는 입력된 데이터 ite과 동일한 데이터를 저장한 노드를 찾아 그 노드번호(index)를 반환한다. 그 반환과정을 위해 연결리스트를 순회한다. public int indexOf(T item) {// search Node p = head; int index = 0;// index값을 초기화 while(p != null)..
addAfter(Node before, T item) 만들고자 하는 구조 before노드 > new 노드 > 다음 노드 순서 new 노드를 만들고 데이터를 저장 new 노드의 next필드가 다음 노드를 가르키도록 함 before 노드의 next필드가 new노드를 가르키도록 함 public void addAfter(Node before, T item) { Node temp = new Node(item); temp.next = before.next; before.next = temp; size++; } addBefore(Node p, T item) 만들고자 하는 구조 new 노드 > p 노드 > 다음 노드 이 경우 간단하지 않다. 이유는 LinkedList 의 노드들은 자신의 다음 노드의 주소값을 가지고 있..

memo 내가 작성한 코드가 일반적인 경우뿐만 아니라 특수한 혹은 극단적인 경우에도 문제 없이 작동하는지 철저하게 확인하여야 한다. 추가시키는 노드의 다음 노드가 없는경우 삭제하려는 노드의 다음 노드가 없는경우 등등 Node 구성 데이터 필드 링크 필드 다음 node의 주소를 참조함 첫 번째 node의 주소는 따로 저장하여야 함 LinkedList에 새 노드 추가시키기(처음 노드로) addFirst("Ann") 새 노드 만들고 추가할 데이터를 저장 새 노드의 next 필드가 현재의 head노드를 가리키도록 함 newNode.next = head 새 노드를 새 head 노드로 함 head = newNode 순서가 중요 추가하기전의 head의 값은 기존에 있던 가장 처음 노드의 주소값과 같으므로 새로운 노드..

리스트(list) 기본적인 연산: 삽입, 삭제, 검색 등 리스트를 구현하는 대표적인 방법 배열 단점 크기가 고정 - reallocation이 필요 리스트의 중간에 원소를 삽입하거나 삭제할 경우 다수의 데이터를 옮겨야 함 비용이 많이 듦 장점 랜덤 엑세스 가능 ex) CD 연결리스트 장점 다른 데이터의 이동없이 중간에 삽입, 삭제가 가능 길이에 제한이 없음 단점 랜덤 엑세스가 불가능 ex) 테잎 삽입과 삭제 데이터의 주소값을 바꿔주어 다른 데이터의 이동없이 데이터를 삽입 및 삭제할 수 있음 출처: 인프런 java로 배우는 자료구조 4-1장: 연결리스트의 개념과 기본연산1 https://www.inflearn.com/course/java-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0
자료구조를 알아야 하는 이유 아래와 같은 경우에 이미 수많은 프로그래머가 사용한 자료구조들을 적용해 코드를 만들면 더욱 편하고 빠른 데이터 핸들링이 가능 자료의 수가 유동적 자료를 사용하는 순서가 특별한 경우 자료를 검색해서 사용하는 경우 Linked List 자료구조의 기본단위 서로 연결된 데이터 목록 배열과 대조적으로 런타임시에 공간 조정이 가능함 배열 메모리를 필요한 양만큼 미리 선점하여 사용하므로 선점된 공간이 부족하더라도 유동적으로 공간이 낭비될 수 있음 node 데이터 참조 Singly Linked List(단방향 링크드 리스트) Doubly Linked List(양방향 링크드 리스트) 첫 노드를 알고있다면 거기에서 링크된 모든 노드를 순서대로 사용할 수 있음 새 노드를 생성하고 마지막노드를 ..
선형 자료구조 데이터와 데이터가 선처럼 일렬로 배치되는 구조 데이터를 자주 넣고 빼는 구조에서는 다른 자료구조가 필요함 그래서 생긴것이 스텍, 큐, 덱 스텍(stack) Last-In First-Out 마지막에 넣은 데이터부터 꺼내어 사용하는 구조 ex) 뷔페에서 쌓여서있는 접시를 손님들이 마지막부터 꺼내어 사용하는 구조 웹브라우저 방문기록: 방문한 기록을 스텍에 쌓아두었다가 하나씩 꺼내어 씀 push 스택에 데이터를 넣는 기능 top 최상위 노드를 top이라는 이름의 참조로 관리 처음 노드가 아무것도 없다면 top은 null값을 가짐 push하면 top은 새로 들어온 노드를 참조하며 새로들어온 노드를 바로 직전의 노드를 참조함 스택이 끝나는 부분에서는 null을 참조 pop 스택에서 데이터를 빼서 사용..
- Total
- Today
- Yesterday
- 재귀함수
- Java
- 인접리스트
- 운영체제
- 인접행렬
- 알고리즘
- Stack
- 구조체
- 입출력장치
- 소프트웨어
- 스텍
- javascript
- 이진탐색
- 배열
- 클래스
- 퀵정렬
- 교착상태
- C++
- 세마포어
- BFS
- 자료구조
- 병행프로세스
- C
- 동적프로그래밍
- dfs
- react
- server side rendering
- stackframe
- 최단경로
- client side rendering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |