티스토리 뷰
- 자료구조를 알아야 하는 이유
- 아래와 같은 경우에 이미 수많은 프로그래머가 사용한 자료구조들을 적용해 코드를 만들면 더욱 편하고 빠른 데이터 핸들링이 가능
- 자료의 수가 유동적
- 자료를 사용하는 순서가 특별한 경우
- 자료를 검색해서 사용하는 경우
- 아래와 같은 경우에 이미 수많은 프로그래머가 사용한 자료구조들을 적용해 코드를 만들면 더욱 편하고 빠른 데이터 핸들링이 가능
- Linked List
- 자료구조의 기본단위
- 서로 연결된 데이터 목록
- 배열과 대조적으로 런타임시에 공간 조정이 가능함
- 배열
- 메모리를 필요한 양만큼 미리 선점하여 사용하므로 선점된 공간이 부족하더라도 유동적으로 공간이 낭비될 수 있음
- 배열
- node
- 데이터
- 참조
- Singly Linked List(단방향 링크드 리스트)
- Doubly Linked List(양방향 링크드 리스트)
- 첫 노드를 알고있다면 거기에서 링크된 모든 노드를 순서대로 사용할 수 있음
- 새 노드를 생성하고 마지막노드를 참조시켜 간단하게 용량을 늘릴수도있음
- 중간에 데이터를 추가하거나 삭제할 경우
- 데이터의 참조만 바꿔서 리스트를 조정할 수 있음
- 초기생성속도가 느리며 참조에 사용하는 메모리가 소요됨
- 배열처럼 한번에 공간을 마련하는 것이 아닌 노드를 하나씩 생성하면서 공간을 만들기 때문
- 링크를 따라가며 특정 위치의 데이터를 찾아내야 함
- 배열은 인덱스를 사용
- java에서 사용
- 데이터를 담는 클래스 안에 다음 변수를 참조하는 클래스 변수를 추가하여 사용
public class Data{
public Data next;
public int number;
public String name;
}
'data structure' 카테고리의 다른 글
[Singly Linked List] 검색, 삽입, 삭제 (0) | 2020.03.14 |
---|---|
[Singly Linked List] node 삽입, 삭제 (0) | 2020.03.14 |
[Singly Linked List] node 추가하기 (0) | 2020.03.14 |
Array, LinkedList (0) | 2020.03.14 |
stack, queue (0) | 2020.03.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 교착상태
- BFS
- 동적프로그래밍
- 이진탐색
- server side rendering
- 병행프로세스
- 소프트웨어
- 인접행렬
- 운영체제
- 클래스
- 재귀함수
- react
- 알고리즘
- 배열
- 자료구조
- Java
- C
- 구조체
- javascript
- 퀵정렬
- 인접리스트
- 입출력장치
- C++
- 최단경로
- 세마포어
- Stack
- 스텍
- stackframe
- dfs
- 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 |
글 보관함