Computer Science/Data Structure(11)
-
큐(Queue)
큐의 종류 1) 큐(Queue) 2) 원형 큐(Circular Queue) 3) 연결 리스트 큐(Linked List Queue) 3-1) 단일 연결 리스트 큐 3-2) 이중 연결 리스트 큐(원형 연결 리스트 큐) 1) 큐(Queue) 입력과 출력을 한쪽 끝(front, rear)으로 제한한다. FIFO(First In First Out, 선입 선출)이라고 하며 가장 먼저 들어온 것이 가장 먼저 나간다. front : 가장 첫 원소 rear : 가장 끝 원소 즉, 큐는 rear로 들어와서 front로 나온다. 함수 enQueue() : 데이터를 rear에 넣는다. deQueue() : 데이터를 front에서 뺀다. isEmpty() : 큐가 비어있는지 확인한다. isFull() : 큐가 가득 차있는지 확..
2021.12.01 -
스택(Stack)
스택(Stack) 입력과 출력이 한 곳으로 제한되어 있다. LIFO (Last In First Out, 후입선출) 이라고 하며 가장 나중에 들어온 것이 가장 먼저 나오는 자료구조이다. 함수 push() : 가장 뒤에 데이터를 넣는다. pop() : 가장 뒤에서 데이터를 뺀다. isFull() : 스택이 가득 차있는지 확인한다. isEmpty() : 스택이 비어 있는지 확인한다. 구현 push와 pop을 할 때 해당 위치를 알고 있어야 하므로 현재의 위치를 갖고 있는 '스택 포인터(SP)'가 필요하다. 스택 포인터는 다음 값이 들어갈 위치를 가리키고 있다. (처음 기본값은 -1) class stack(size) : sp = -1 stack_size = 0 def __init__(self): self.sp ..
2021.12.01 -
Array & ArrayList & LinkedList
Array Index로 빠르게 값을 찾는 것이 가능 / 선언할 때 크기와 데이터 타입 지정 / 삽입 및 삭제가 느림 ArrayList Index로 빠르게 값을 찾는 것이 가능 / 선언할 때 크기 지정 없음(메모리 동적) / 삽입 및 삭제가 느림 Linked List index로 값을 찾지 못해 검색 느림 / 데이터의 삽입 및 삭제가 빠름 Array vs ArrayList vs Linked List 배열 - 선언할 때 크기와 데이터 타입을 지정해야 한다. - 데이터가 계속 늘어날 때, 최대 사이즈를 알 수 없을 때는 사용하기에 부적합하다. - 중간에 데이터를 삽입하거나 삭제할 때 매우 비효율적이다. (다른 데이터들을 옮겨야 하기 때문에) - 대신, 배열을 사용하면 index가 존재하기 때문에 위치를 바로 ..
2021.11.30 -
Linked List(연결 리스트)
Linked List(연결리스트) 란? 배열(Array)은 순차적으로 연결된 공간에 데이터를 나열하는 자료구조이고, 연결 리스트(Linked List)는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 자료구조이다. 배열은 미리 특정한 연결된 공간을 확보하고 데이터를 쓰고 있는 자료구조이고, 연결 리스트는 필요할 때마다 데이터를 추가할 수 있는 구조이다. 배열의 단점을 극복한 자료구조가 연결 리스트라고 볼 수 있다. 단일(단방향) 연결 리스트(Singly Linked List)라고도 한다. 배열과 달리 특정한 데이터를 저장할 때 해당 데이터를 저장하는 공간과 함께, 그 다음에 나올 데이터가 저장되어있는 공간을 가리키는 주소 값을 동시에 가지고 있다. 연결 리스트는 이 두 공간을 하나의 데이터로 ..
2021.11.30 -
Array(배열)
배열 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 방법이다. 배열을 이용하면 하나의 변수에 여러 정보를 담을 수 있고, 반복문과 결합하면 많은 정보도 효율적으로 처리할 수 있다. 배열의 특징 순차적으로 데이터를 저장하는 자료구조 주로 서로 연결된 데이터들을 순차적으로 저장할 때 사용 순서가 상관없더라도 서로 연결된 데이터들을 저장할 때 사용 순서대로 저장 이미 생성된 것도 수정 가능 동일한 값 여러번 삽입 가능 배열 안에 배열이 들어올 수 있음(Multi-dimentional) 배열 내부 구조 Array는 실제 메모리 상에서, 즉 물리적으로 데이터가 순차적으로 저장된다. 따라서 어느 자리에 있는지 번호로 지정할 수 있으며, 이 번호를 index라고 한다. 배열의 장점 Index를 가지고 있기 ..
2021.11.30