개발 공부/자료구조 4

Linked list

RAM(Random architecture Memory) 메모리에도 address가 있고, 각자의 위치에 데이터가 저장됨 각 주소에 접근할 때 걸리는 시간이 동일 메모리를 사용하는 특성이 다르다 LinkedList 구조 node : 마디, 교점 vertex: 정점, 꼭지점 연결과 연관되어 있는 개념 구조를 설명하기 위한 표현 node 안에 2개의 필드(변수)를 가지고 있다 data field: 저장되는 실제 값 link field: 다음 node가 무엇인가 저장 되어 있음 head : 첫번째 노드가 무엇인가를 의미하는 정보를 저장 첫번째 위치에 노드 추가 1. 노드를 생성 2. 새로 생성한 노드에 next값으로 현재 이 리스트의 첫번째 노드를 지정 3. 시작이 되는 node가 방금 생성한 node 데이터..

Array List

리스트를 만들 때 내부적으로 배열을 사용 리스트 완제품 안에 배열이라는 부품을 사용하는 것과 같음 데이터를 추가 빈 공간을 만들어 놓고 추가 데이터 삭제 빈 공간이 생기고 list는 빈 공간을 허용하지 않아서 뒤에있는 데이터들을 앞으로 댕기게 됨 단점 : 삭제하거나 추가할 때마다 뒤에 있는 데이터들을 하나씩 댕겨야 하므로 시간이 많이 걸림 장점 : 데이터 가져오기 (인덱스 값을 알고 있어서 인덱스 값으로 데이터를 가져올 때) ArrayList: 호수를 알고 있으면 바로 가서 찾을 수 있음 (빠름) LinkedList : 호수를 몰라서 일일이 찾아야 함 (느림) 데이터의 크기를 가져오고 싶을 때 몇 개의 데이가 저장되어 있는지 가져 오고 싶을 때 변수 값을 통해 몇 개의 요소가 리스트 안에 존재하는 지 알..

List (배열과 List차이 비교)

배열과 리스트 비교 Array : list와 같이 순서대로 저장 / 중복 저장 가능 List : 데이터가 저장되는 순서가 중요하게 여겨지는 타입 데이터를 추가할때 배열과 리스트는 어떻게 다를까? 인덱스[3]에 데이터를 추가한다고 가정할 경우, 배열의 경우 기존 값을 덮어 씌움 인덱스[3]에 데이터를 추가한다고 가정할 경우, 리스트의 경우 기존에 있던 값40을 뒤로 한칸 넘겨 주고, 생긴 빈 공간에 값 추가 데이터 삭제 배열의 경우 비어 있는 상태로 유지 리스트의 경우 3번 데이터가 사라지면서 뒤에 있던 데이터가 앞으로 댕겨 짐 리스트 장점 데이터가 연속되어 있음 for문을 이용해 순회하여 처리하는 경우, 데이터가 있는지 없는지 체크할 필요가 없음 단점 인덱스는 몇번째 데이터인가 정도의 의미로 한정 배열 ..