CSE/Data Structure(5)
-
Hash Table, ArrayList
1. Linked List를 이용한 Hash Table 구현 (Python) 이 경우에서 최악의 경우에는 O(N)이고 최적의 경우는 O(1)이다. class Node: def __init__(self, data, prevnode = None, nextnode = None): self.data = data self.prevnode = prevnode self.nextnode = nextnode class LinkedList: def __init__(self, root = None): self.root = root def insert(self, data): now = self.root if self.root == None: self.root = Node(data) else: while now.nextnode..
2021.07.19 -
04. Queue
* 특징 : 데이터를 일시적으로 쌓아 놓은 자료구조 선입선출(FIFO, First In First Out) * java로 간단하게 구현한 모습 public class Queue { private int front; private int num; private int rear; private int max; private T[] que; public Queue(int n){ front = num = rear = 0; max = n; try{ que = (T[])(new Object[max]); }catch(OutOfMemoryError e){ max = 0; } } public T enque(T x) throws OverflowQueueException{ if(num>=max){ throw new Over..
2020.02.02 -
03. Stack
* 특징 : 데이터를 일시적으로 저장하기 위해 사용하는 자료구조 후입선출(LIFO, Last In First Out) * java로 간단하게 구현한 모습 & 메소드 설명 import java.lang.reflect.Array; import java.util.Arrays; public class Stack { private int ptr; private int max; private T [] stk; public Stack(int capacity){ //생성자 ptr = 0; max = capacity; try{ this.stk = (T[])new Object[max]; }catch (OutOfMemoryError e){ max = 0; } } public T push(T x) throws Overflow..
2020.01.21 -
02. 이진 검색(Binary Search)
* 정의 : 요소가 오름차순 또는 내림차순으로 정렬된 배열에서 검색하는 알고리즘 배열의 중간에 위치한 키의 값과 검색할 키의 값을 비교해나가는 알고리즘 ex) 배열 a = {0,1,2,3,4,5,6,7,8,9,10} 검색할 key 값 : 4 1단계 : a[0~10]에서의 중간인 a[5]의 key와 검색할 key의 크기 비교 => a[5]>검색할 key 2단계 : a[0~4]에서의 중간인 a[2]의 key와 검색할 key의 크기 비교 => a[2]
2019.08.21 -
01. 선형 검색 (Linear Search)
* 정의 : 요소가 직선 모양으로 늘어선 배열에서의 검색 원하는 키 값을 갖는 요소를 만날 때 까지 맨 앞부터 순서대로 요소를 검색 * 예외 처리 - 배열 내에 원하는 키 값이 없을 경우 => 보초법(sentinel mothod) : 원래 데이터의 맨 끝에 검색할 값을 추가한 후(보초를 추가함) 검색 * java로 구현한 코드 - example_1 (보초법 X) public class example_1 { static int linearSearch(int[] a, int n, int key){ //요솟수가 n인 배열 a에서 key를 선형 검색 하는 메소드 int result = -1; for(int i = 0; i
2019.08.21