자료구조 6

정적바인딩 원형 큐(Circulation Queue)

public class Memory { // 원형 큐의 후단을 관리하기 위한 인덱스 // 스택의 전단과 후단을 관리하기 위해 사용하는 인덱스 protected int rear; protected int[] arr; protected int maxSize; public Memory(int num) { rear = 0; maxSize = num; arr = new int[num]; } public void push(int num) { rear = (rear + 1) % maxSize; arr[rear] = num; } public void disp() { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } System.out.p..

자료구조 2020.02.18

Stack (노드 개념 적용)

* isEmpty 부분은 비어두었습니다 .. 귀찮아서 public class Node { // 데이터 필드와 , 링크 필드로 구성된다. public T data; public Node next; public Node(T item) { data = item; next = null; } } public class MyStack { // 스택의 top을 가리키는 노드 public Node top; public int size; public MyStack() { top = null; size = 0; } public void push(T item) { Node newItem = new Node(item); newItem.next = top; top = newItem; size++; } public T pop()..

자료구조 2020.02.18

연결리스트(Linked List)

[ 연결리스트를 구성하는 기본 단위 "노드" ] - 각각의 노드는 "데이터 필드"와 하나 혹은 그 이상의 "링크 필드"로 구성된다. - 링크 필드는 다음 노드를 참조한다. - 첫 번째 노드의 주소는 따로 저장해야 한다. 연결리스트의 구조는 아래와 같다. MySingleLinkedList 클래스의 head 는 첫 번째 노드를 가리킨다. 그리고 각 노드의 링크 필드(next)는 다음 노드를 가리킨다. 현재 노드가 마지막 노드라면 링크 필드는 그냥 null 이다. [ Node.class ] public class Node { // 데이터 필드와 , 링크 필드로 구성된다. public T data; public Node next; public Node(T item) { data = item; next = nul..

자료구조 2020.02.13

리스트 (LIST)

[ 리스트 ] - 순서대로 자료를 저장하는 자료구조 (노드라는 개념이 존재한다) - 메모리 공간이 필요에 따라 자유 - 기본적인 연산 삽입(insert) , 삭제(remove), 검색(search) 등 - 여러 개의 자료가 한 줄로 연결된 구조를 다른 말로 선형구조라고 한다. - 리스트를 구현하는 대표적인 두 가지 방법 : 배열, 연결리스트 [ 배열의 단점 ] - 크기가 고정되어 있어 reallocation 이 필요하다. - 리스트의 중간에 어떠한 데이터를 삽입하거나 삭제할 경우 다수의 데이터를 옮겨야 한다. [ 연결리스트 ] - 다른 데이터의 이동없이 중간에 삽입이나 삭제가 가능하며, 길이의 제한이 없다. - 그러나 랜덤 엑세스가 불가능하다. ( n 번째 데이터를 읽어야 할 때.. 처음부터 순서대로 찾..

자료구조 2020.02.13

자료구조와 알고리즘

1. 자료구조 컴퓨터에 자료를 효율적으로 저장하는 방식 1-2. 자료구조의 필요성과 목적 - 프로그램에서 사용하는 메모리를 절약하기 위해 - 프로그램 실행시간을 단축하기 위해 - 프로그램의 구현을 쉽게 하기 위해 1-3. 자료구조에는 선형 구조와 비선형 구조가 있다. 선형구조 : 여러 개의 자료를 한 줄로 순서대로 저장하는 구조(리스트, 스택, 큐 등) 단순하면서 직관적이어서 여러 프로그램에서 자료를 차례대로 저장하는 목적으로 사용한다. 비선형구조 : 각각의 자료들 사이의 앞뒤 관계가 일대일이 아니다.(트리, 그래프 등) 2. 알고리즘 - 어떤 문제를 해결하기 위한 효율적인 절차 - 효율적인 알고리즘이 만들어지려면 당연히 효율적인 자료구조가 먼저 선택되어야 한다. (자료구조는 모든 개발의 기본) - 반대..

자료구조 2020.01.15