IT자료실/자료구조 5

자료구조 (Stack)

Stack 한 쪽 끝에서만 데이터를 넣고 뺼수 있는 선형 구조 LIFO : List In First Out 특징 push : 데이터 넣는 것 pop : 데이터 꺼내는 것 Array를 이용한 Stack 구현법 top : 데이터를 pop할 때 어떤 데이터를 꺼내야 하는지 위치에 대한 값 데이터가 push 될 때는 top이 위로, 데이터가 pop 될 때는 top이 아래로 이동 top 에 값이 없으면 "-1" 반환 (top이 -1 값이면 데이터 존재하지 않으므로 이동하지 말고 예외 발생) 데이터 push 시 top가 마지막 index와 동일하면 stack이 꽉 찬 것 ArrayStack 예제 Stack 을 인터페이스로 만들어 상속 받는 방식을 한번 구현해 봤다. package arrayStack; public ..

자료구조 (SinglyLinkedList 실습예제)

SinglyLinkedList 실습 단일 연결 리스트를 개념 정리했던 대로 추가해보자 예제는 https://leetcode.com/explore/learn/card/linked-list/209/singly-linked-list/ 을 참고 하였다. 먼저 노드의 정보를 가지고 있는 클래스를 생성한다. public class SinglyLinkedNode { int val; SinglyLinkedNode next = null; SinglyLinkedNode(int v){ val = v; } } 다음으로 예제로 구현해볼 메소드를 작성한다 public class MyLinkedList { private SinglyLinkedNode head = null; public MyLinkedList() { } public..

자료구조 (Double LinkedList)

Double LinkedList 이중연결리스트는 단일연결리스트의 제한된 흐름을 개선하려 만든 자료구조이다. 단일연결리스트는 다음 노드의 위치를 가리키는 next만 가졌다면, 이중연결리스트는 이전의 노드를 가리키는 prev도 지원한다. 참조값을 이용하여 포인터를 좌,우측으로 노드에 접근할 수 있다. Double LinkedList 구성 Head : 단일연결리스트에서와 같은 역할을 한다. (첫 번째 노드를 가리키는 변수) Tail : 마지막 노드를 가리키는 노드, tail을 이용하여 마지막 노드에 빠르게 접근 할 수 있다. Node : 데이터와 next, prev 노드로 접근할 수 있는 참조 값을 가지고 있다. Doubli LinkedList 장점과 단접 장점 단일연결리스트와 동일하게 데이터의 크기가 예측불..

자료구조 (Singly LinkedList)

Singly LinkedList 노드가 데이터와 참조값(주소값)을 가지고 직렬적으로 연결되어 있는 데이터 저장 구조 데이터 개수를 알수 없을 때 사용하기 좋음 배열보다 메모리를 효율적을 사용할 수 있다 탐색속도는 배열보다 상대적으로 느리다Node LinkedList에서 Node는 데이터와 다음 Node에 대한 참조값을 가지고 있다. (next변수 사용) 데이터 구조를 구성하는 개체이다. 연결(Linked) 다음 Node 참조값을 저장하여 다음노드에 접근하는 것을 연결이라함 LinkedList 구조 Head : 가장 첫번째 Node의 참조값을 가지고 있다. (Node가 없다면 null값을 가진다.) Node : 데이터와 다음 Node 참조값을 가짐 Pointer 개념 :Node의 참조값을 일시적으로 저장하..

자료구조 (자료구조, 빅오표기법, ArrayList)

자료구조 자료구조란? 한정된 메모리 공간 안에서 데이터 관리, 데이터 저장, 데이터 활용에 대한 것들의 분류 해놓은 것 ( 배열, 스택, 큐, 리스트, 트리, 그래프 등) 자료구조를 왜 알아야 할까 자료의 양은 시간이 지날 수록 기하급수적으로 늘어가고 있다. 테이터들을 효율적으로 사용하기 위해 관리하는 법을 배워야 장기적으로 좋은 개발을 할 수 있다. (자료구조들의 장점과 단점을 알고 어디에 어떻게 쓸지 적용 할 수 있다.) 빅오표기법(big-O notation) 알고리즘의 효율성을 표기해주는 표기법 데이터 개수(N)가 있을 때 사칙연산과 같은 기본 연산의 횟수를 의미 빅오표기법은 알고리즘의 시간복잡도와 공간복잡도를 나타내는데 사용 다른 표기법 대신 빅오 표기법을 사용하는 이유는 빅오표기법이 상한선을 기..