Computer Science/DataStructure, Algorithm13 배열 복사 for문 으로index하나씩 증가시키면서 값 대입해주면 , 그대로 배열값이 복사됨for( int i = 0; i System.arraycopy(); 배열 복사해서 덮어버리기복사하는데 사용되는 배열, 복사된 데이터복사된 데이터를 저장할 배열Arrays.copyOf( );int[] arr = Arrays.copyOf( 배열B , newSize);원본 배열의 크기를 newSize로 늘리거나 줄인것처럼 만들어줌( 원본 배열의 요소들을 새로운 크기의 배열로 복사한거임 ) 2024. 5. 21. Graph , Tree , Heap Graph노드(Node, 정점)들과 그 노드들을 연결하는 간선(Edge)들로 이루어짐 노드(Node): 데이터를 담고 있는 개체 간선(Edge): 노드들을 연결하는 선으로, 노드와 노드 간의 관계를 나타냄 포털사이트 검색엔진 , sns에서 사람들과의 관계 , 네비게이션(길찾기)등에서 사용됨 Java에선 인접 리스트(Adjacency List)나 인접 행렬(Adjacency Matrix)을 사용하여 그래프를 구현 인접 리스트 : 각 정점에 연결된 정점들을 리스트로 표현하여 그래프를 나타내는 방법 중 하나자료구조 라이브러리( JGraphT, GraphStream 등 )를 사용하면 그래프를 표현하고 다양한 그래프 알고리즘을 쉽게 구현할 수 있습니다. 깊이 우선 탐색( DFS )갈 수 있는 만큼 최대한 깊이 .. 2024. 3. 15. Java Collectoin Framework Java Collectoin Framework( JCF ) 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있다. 컬렉션 프레임워크는 크게 Collection 인터페이스와 Map 인터페이스로 나뉜다. Map 인터페이스 컬렉션들은 두개의 데이터를 묶어 한쌍으로 다루기 때문에 Collection 인터페이스와 따로 분리되어 있다. 장점 데이터 구조 와 알고리즘의 속도, 안정성에 있어 자바 언어 개발진들이 수십년에 걸쳐 JVM(자바 가상 머신)에 최적화시켜 개량해왔기 때문에, 만일 자바 프로그래밍에서 자료 구조를 사용할 일이 있다면 Collectoin Framework를 가져와 사용하면 된다. 특징 컬렉.. 2024. 3. 12. Array , List 배열( Array ) 같은 타입의 여러 데이터를 하나의 묶음으로 다루는 것배열은 생성시 설정된 셀의 수가 고정되고, 각 셀에는 인덱스 번호가 부여된다. ( 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다. )부여된 인덱스를 통해 해당 셀 안에 있는 데이터에 접근 할 수 있다. 다차원 배열 Array의 경우 연속된 메모리 공간에 할당된다.List의 경우 불연속적으로 메모리 공간을 차지, 다음 노드를 가리키는 주소값을 가지고 있음(포인터를 통한 접근) List순서가 있는 데이터들 모임빈틈없는 데이터의 적재 ( 원소를 삭제했을 때 삭제된 데이터 뒤 원소로 빈틈없이 연속적으로 위치시킴 ) 배열에서 인덱스는 유일무이한 식별자이지만, 리스트에서는 몇 번째 데이터인지 정도의 의미를 가진다.배열과 다르게 저장공간의.. 2024. 3. 1. 자료구조의 분류(순차와 연결 / 선형과 비선형) 자료구조의 분류 분류의 기준 자료구조 메모리 상에서 연속되있는지에 따라( 물리적인 순서 ) 순차 자료구조와 연결 자료구조 논리적인 순서가 일렬인지에 따라( 논리적인 순서 ) 선형 자료구조와 비선형 자료구조 https://dorivertt.tistory.com/101?category=1068226 논리적 주소 , 물리적 주소 , 메모리 관리 장치(MMU) , 메모리 주소 레지스터(MAR) 물리적 주소(Physical address) 물리적 주소 는 메모리의 물리적 위치를 식별한다.(메모리 자체의 인덱스) 메모리주소레지스터(MAR)에 주어지는 주소 논리적 주소(Logical address) cpu입장에서의 메모리 dorivertt.tistory.com 순차(Sequntial) 자료구조 구현할 자료들을 논리적.. 2022. 7. 8. Stack , Queue Queue먼저 추가된 데이터가 먼저 나오는 FIFO(First In First Out) 동작을 갖는다( Stack과 반대 )Queue의 한 쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행, 다른 한 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행입력된 순서대로 처리할때 사용프린터에서 여러문서를 순서대로 인쇄할때 사용됨 Stack 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 특징이 있는데, 이러한 자료의 구조를 LIFO(Last In First Out) 구조라고 한다. 브라우저의 뒤로가기, 앞으로 가기 기능 구현할때 Stack이 활용자바의 Stack클래스는 Vector클래스를 상속(extends)받기에 Thread-Safe 하다는 특징을 가지고 있다.자바 공식 문서에 보면 애초부터 상속을 잘.. 2022. 6. 30. 이전 1 2 3 다음