티스토리 뷰

data structure

Linked List

tonirr 2020. 3. 13. 17:41
  • 자료구조를 알아야 하는 이유
    • 아래와 같은 경우에 이미 수많은 프로그래머가 사용한 자료구조들을 적용해 코드를 만들면 더욱 편하고 빠른 데이터 핸들링이 가능
      • 자료의 수가 유동적
      • 자료를 사용하는 순서가 특별한 경우
      • 자료를 검색해서 사용하는 경우
  • 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
링크
«   2025/02   »
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
글 보관함