목록Data structure (4)
Developer_Neo
힙 (Heap) 트리를 기반으로 해 어떠한 목적에 따라 변환시킨 자료구조이다. 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n) 이 걸림 이에 반해, 힙에 데이터를 넣고, 최대값과 최소값을 찾으면, O(logn) 이 걸림 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨 구조의 조건 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 크거나 같다. (최대 힙의 경우) 최소 힙의 경우는 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 크거나..
링크드(연결) 리스트(Linked List) 왜? 배열의 경우로 데이터를 넣었을 때 미리 공간을 정해놓아야한다. 만약 데이터가 너무 커서 공간을 넘어가서 데이터가 끊어지게 되면 안되기 때문에 연결리스트가 나오게 된 이유가 있다. - 노드를 연결시킨 자료구조 - 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 위 그림처럼 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당함. C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원 노드(Node): 데이터 저장 단위 (데이터값, 포인터) 로 구성 포인터(pointer): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를..
큐(Queue) 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식 또는 반대로 LILO(Last-In, Last-Out) 방식 넣는 데이터가 같은 자료형이 아니어도 됨. 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다. (출처) 스택과 꺼내는 순서가 반대 장단점 데이터 접근, 삽입, 삭제가 빠르다. 큐 역시 스택과 마찬가지로 중간에 위치한 데이터에 대한 접근이 불가능하다 큐(Queue)의 핵심 연산 Enqueue 큐에 데이터를 넣는 기능 반환 X Dequeue 큐에서 데이터를 꺼내는 기능 데이터 반환 다른 연산들 QueueInit 큐의 초기화를 진행한다. (큐 생성 후 제일 ..
2022.01.16 - [분류 전체보기] - [python] 인덱싱(indexing), 슬라이싱(slicing) with 문자열, 리스트, 튜플 [python] 인덱싱(indexing), 슬라이싱(slicing) with 문자열, 리스트, 튜플 인덱싱(indexing) - 시퀀스 자료형인 문자열, 리스트, 튜플에 사용가능 - 시퀀스 자료형에 부여된 번호를 의미한다. 특징 양수 인덱스 앞에서부터 시작하는 것으로 0부터 시작 음수 인덱스 뒤에서부 devloper-dreaming.tistory.com 배열 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 방법 같은 종류의 데이터를 효율적, 순차적으로 관리, 저장하기 위해 사용한다. 파이썬에서는 리스트자료형이 배열 기능을 제공한다. 장점 - 인덱스 번호로..