자료구조 [Data Structure] Linked List 2018. 5. 23. Linked List Linked List는 List 구현 클래스이므로 Array List와 사용 방법은 똑같지만 내부 구조는 완전 다르다.Array List는 내부 배열에 객체를 저장해서 인덱스로 관리 하지만, Linked List는 인접 참조를 링크해서 체인처럼 관리한다. Linked List 구조 Linked List는 노드(엘리먼트)들의 모임이다.따라서 내부적으로 노드를 가지고 있어야 한다.Array List의 경우 엘리먼트가 배열의 엘리먼트 였지만 Linked List는 배열 대신에 다른 구조를 사용한다. 노드는 최소한 두가지 정보를 알고 있어야 한다. 노드의 값과 다음 노드이다.각각의 노드가 다음 노드를 알고 있기 때문에 하나의 연결 된 값의 모임을 만들 수 있는 것이다. 이것을 구현하는 방법.. [Data Structure] Array List 2018. 5. 23. Array List ● Insert 추가내부적으로 데이터를 배열에 저장한다.배열의 특성상 데이터를 리스트의 처음이나 중간에 저장하면 이후의 데이터들이 한칸씩 뒤로 물러난다. ● Remove 삭제삭제도 추가와 비슷하다.빈자리가 생기면 빈자리를 채우기 위해서 순차적으로 한칸씩 땡겨야 한다. ※ 단점 : 데이터를 추가하거나 삭제 할 때 마다 시간이 많이 소요된다. ※ 장점 : 인덱스 값을 알고 있기 때문에 데이터를 가져오는 것은 매우 빠르다.주소를 알고 있기 때문에 건물을 찾아가기 빠르다 JAVA 컬렉션 프레임워크라는 자체적인 라이브러리 안에 Array List를 내장하고 있기 때문에 직접 Array List를 구현해서 사용 할 일이 없으며 사용하는 방법에 대해서 명확한 인식을 가지고 있어야 한다 ● 생성Ar.. [Data Structure] List 2018. 5. 23. List Array와 List의 차이점 배열의 가장 큰 특징은 인덱스가 있다는 것이다. 만약 인덱스를 알고 있다면 인덱스를 이용해서 데이터를 가져 올 수 있다.인덱스를 이용한 데이터의 조회는 매우 빠르게 처리된다. 하지만 인덱스를 이용해서 데이터를 가져오려면 데이터에 대한 인덱스의 값이 고정되어야 한다.자연스럽게 어떤 엘리먼트가 삭제되면 삭제 된 상태를 빈 공간으로 남겨둬야 하며, 이것은 메모리의 낭비를 초래한다.또한 배열에 데이터가 있는지 없는지를 체크하는 로직이 필요하기도 한다. 리스트는 배열이 가지고 있는 인덱스라는 장점을 버리고 대신 빈틈없는 데이터의 적재라는 장점을 취한 데이터 스트럭쳐라고 할 수있다. 삭제 1. 배열데이터를 순회하는 과정에서 3번 데이터가 있는지 없는지 체크 해야한다.삭제 한 .. [Data Structure] Data Structure란? 2018. 5. 23. Data Structure란? Data Structure란? ● 현실을 프로그래밍적으로 표현하는 것어떠한 현실적인 문제를 컴퓨터로 표현 하려고하면 막막할 뿐이다. 이러한 문제들을 개발자들이 만들어 놓은 표현 방법들을 배우는 것이다. ● 큰 데이터를 효율적으로 관리하는 것예를 들어 책이 1권 있을 때 관리 할 것은 딱히 없다. 그런데 책이 100권, 200권이 있다면 내가 필요한 책을 찾는 시간이 많이 소비 될테며 이를 방지하기 위해 책들을 정리 할 것이다. 주제별로, 알파벳별로 책들을 보관하게되면 내가 필요한 책을 찾는 시간이 덜 필요하게 될테며 책을 보관하는 공간 또한 남을 수 있게 된다. Data Structure가 어려운 이유 ● 실무 경험이 없다● 공감이 안된다● 이해가 안된다 프로그래밍을 갓 배.. 이전 1 다음