본문 바로가기

CS118

컴퓨터, 컴퓨터과학, 컴퓨터 시스템 1. 컴퓨터 - 데이터 처리기 입력 -> 처리 -> 출력 - 프로그램이 가능한 데이터 처리기 프로그램이 가능한 자료 처리기이다. 단순히 입력에 의해서만 결정되는 것이 아니라 프로그램에 의해서도 정의됨 프로그램이란? - 컴퓨터가 데이터를 어떻게 처리할지를 알려주는 일련의 명령어 집합 - 처리 가능한 작업의 유형과 연산의 집합을 결정 - 컴퓨터 -> 특수 목적의 작업을 처리하는 기계가 아니라, 다양한 형태의 작업을 수행할 수 있는 범용의 기계 - 프로그래밍 과정의 결과물 - 1. 주어진 문제의 해결 방법과 절차를 찾는다 -> 알고리즘 - 2. 그것을 적절한 언어로 처리하기 컴퓨터의 장점 - 신속한 처리 - 처리 결과의 정확성: 항상 정확한 결과 생성 - 자동화 - 대용량 2. 컴퓨터 과학 컴퓨터과학이란 - .. 2023. 9. 17.
pointer 방식 LinkedList 자바 구현 코드 포인터를 이용한 방식의 연결 리스트를 만든다. 연결리스트에 필요한 노드 객체를 LinkedList 클래스 내부에 만든다. Node는 데이터용 필드인 data와 자기 자신과 가은 클래스형을 참조하는 next를 필드로 갖는다. 다음 노드를 참조하는 next를 뒤쪽 포인터라고 부를 수 있다. 각 노드의 필드 next에 넣어두는 것은 그 노드의 다음 노드에 대한 참조이다. public class PointerLinkedList { private Node head; private Node current; static class Node{ private E data; private Node next; public Node(E data, Node next) { this.data = data; this.next = n.. 2023. 6. 18.
ring 방식 int queue 자바 구현 코드 자료구조 중 하나인 queue를 ring 방식으로 구현한 코드이다. 이 코드에서 front와 rear 변수는 큐의 원소들이 저장된 배열에서 현재 프런트(front)와 리어(rear)의 위치를 나타낸다. - front: 큐에서 가장 앞에 있는 원소의 인덱스를 가리킨다. deque() 연산이 발생하면 front 값이 증가한다. 즉 한 칸씩 이동한다. - rear: 큐에서 가장 뒤에 있는 원소의 다음 위치를 가리킨다. enque() 연산이 발생하면 rear는 값이 증가한다. 즉 한 칸씩 이동한다. 1. 인큐(enqueue()) 연산: rear 인덱스가 큐의 맨 뒤에 위치하고 있는 상태에서 인큐가 발생하면 rear는 배열의 처음으로 되돌아간다. 이렇게 하면 배열의 처음부터 빈 공간이 있을 때까지 데이터를 저장할.. 2023. 6. 17.
array 방식 int queue 자바 코드 구현 링 버퍼를 사용하지 않고 순수 배열을 이용해 구현한 int queue 이다. 큐의 기본특성인 FIFO 로직을 수행한다. package datastructure.queue.intarrayqueue; public class IntArrayQueue { private int max; private int pointer; private int[] queue; public IntArrayQueue(int capacity) { max = capacity; pointer = 0; queue = new int[max]; } public void enqueue(int value) { if (pointer >= max) { throw new IllegalStateException("큐가 가득 찼습니다."); } queue.. 2023. 6. 17.
int stack 자바 구현 코드 자료구조 중 하나인 Stack을 자바로 구현한 코드이다. int 타입을 처리하는 stack이다. package datastructure.stack.intstack; public class IntStack { private int max; private int pointer; private int[] stack; public IntStack(int capacity) { pointer = 0; max = capacity; try { stack = new int[max]; } catch (OutOfMemoryError e) { max = 0; } } public int push(int value) { if (pointer >= max) { throw new OverflowIntStackException(); .. 2023. 6. 17.