Java 16

2. 스택 stack

Stack이란? LIFO(Last In, First Out) 후입, 선출 / 먼저 들어간게 먼저 나온다. 리스트의 제한된 형태 넣고 빼기가 리스트의 한쪽 끝에서만 가능하다.(뒤에서만 넣고 빼기가 가능한 리스트) PUSH(넣기) POP(빼기) TOP(맨 위의 값 리턴) Stack ADT public interface Stack { public void clear(); // 전부 다 지우기 public void push(E it); // 값을 맨 위에 넣기 public E pop(); // 맨 위의 값을 빼서 쓰기 (return타입이 있는 이유) public E topValue(); // 맨 위의 값을 가져만 오기 (return타입이 있는 이유) public int length(); // 스택에 얼마나 많은..

자료구조 2022.09.06

1. 리스트(3) List Iterator, DLink

List Iterator와 Doubly Linked List(이하 DLink)는 왜 등장하게 되었을까? Array List와 Linked List의 리스트 순회 시간 복잡도는 어떻게 될까? List list = new ArrayList(); (혹은 new LinkedList();) for(int i = 0; i < list.length(); i++) System.out.println(list.getValue()); // 리스트 순회하는 이 구문의 시간 복잡도는? Array List의 경우 : O(n) Linked List의 경우 : O(n²) Linked List의 시간 복잡도를 줄일 수 있는 방법이 뭐가 있을까? 첫번째 방법 - curr을 매번 이동하는 것이 아닌 한 노드 옮겨갈 때마다 그 위치를 기억..

자료구조 2022.09.05

1. 리스트(2) Linked list

연결 Link (노드) 데이터 item(내가 원하는 값) 와 포인터 pointer(다른 노드를 가르킴) 로 구성된다. 리스트를 연결을 이용해 표현하는 방법은? Link 연결 구현 class Link{ private Link next; private E item; public Link(E item, Link next){ this.item = item; this.next = next; } E item(){return item;} E setItem(E item){return this.item;} Link next(){return next;} Link setNext(Link next){return this.next;} } 연결리스트를 구현할 때 head 부분을 따로 둬야할까? A> 따로 두는게 좋다. head ..

자료구조 2022.09.04

1. 리스트(1) Array Lists

학교 수업 '자료구조' 복습 리스트란? 유한하고 순서가 있는 데이터의 나열 리스트 속의 데이터들은 위치 position가 있음 표기법 : 어떤 연산operation이 필요할까? 필요한 연산 특정 위치에 아이템을 넣을(insert, append) 수 있다. 특정 위치의 아이템을 읽고(getValue), 변경(update)할 수 있다. 특정 위치의 아이템을 삭제(remove)할 수 있다. 리스트 내의 아이템 개수(length)를 알 수 있다. 리스트를 비울(clear)수 있다. 배열(Array) 기반 리스트 넣기 삭제 구현 public class arrayList implements List { int listSize; E[] data; public arrayList(int capacity) { listSi..

자료구조 2022.09.04

2. 자료구조 공부 준비

'자바로 배우는 쉬운 자료구조' 를 공부하기 위한 Java 기초 공부 객체지향 프로그래밍 객체의 특징 1. 캡슐화(Data Hiding) 캡슐화된 객체는 지정한 인터페이스를 통해서만 외부와 연결되어 밖에서 안의 내용을 볼 수 없기 때문에 독립성을 갖게 된다. 2. 코드의 재사용(상속 inheritance) 3. 다형성(Polymorphism) 객체의 다형성이란 같은 이름의 메소드가 상황에 따라 다른 연산을 수행하는 것을 의미한다. 객체 지향 언어 : 자바 1. 자바의 캡슐화 구현 접근 권한 public 같은 패키지 다른 패키지 자식 클래스 protected 같은 패키지 자식 클래스 default 같은 패키지 private 2. 자바의 상속 구현 부모 클래스 와 자식 클래스 class StudentInfo..

기타 공부 2022.08.23

1. 자료구조 공부 준비

'자바로 배우는 쉬운 자료구조' 를 공부하기 위한 Java 기초 공부 자바의 데이터 타입 1. 기본 타입 byte, short, int, long, char float, double boolean 2. 참조 타입 (메모리 주소를 계산할 수 있는 참조 값을 다루기 위한 타입) 배열 > 데이터 타입 배열이름 []; , 데이터 타입 [] 배열이름; > 생성 명령 : new 데이터타입 [배열크기]; 클래스 타입 > class 클래스이름 ---- class PointXY > 변수 선언(상수 선언) ---- int x, y; > 메소드 정의 ---- PointXY(int x, int y){...} void setX(int x){...} void setY(int y){...} ... 인터페이스 타입 > interfa..

기타 공부 2022.08.23