[자료구조] - 연결 리스트
·
Computer Science/Data Structure
1. 연결리스트(Linked List)란? - 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조이다. - 각 노드는 다음 노드를 가리키는 포인터를 포함한다. 다음 노드를 가리키는 포인터는 다음 노드의 주소 값을 갖고 있다. 각 포인터 변수의 주소도 따로 존재한다. 2. 단순연결리스트의 구현 - 노드의 구성 typedef struct _Node { int data;//저장할 데이터 struct _Node* next;//다음 노드를 가리킬 포인터 }Node; - 연결리스트의 초기화(Init) Node* head; void init() { head = NULL; } - 연결리스트의 삽입(Insert) void insert(int data) { Node* ptr; N..
[자료구조] - 해쉬테이블
·
Computer Science/Data Structure
1. 해쉬테이블이란? - (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조이다. 다시 말해 해시 테이블은 어떤 특정 값을 받아서 해시 함수에 입력하고, 함수의 출력값을 인덱스로 삼아 데이터를 저장한다. - 해쉬테이블의 특징은 : 기본 연산으로 search, insert, delete가 있다 순차적으로 데이터 저장 X Key를 통해 Value 얻을 수 있다 (이진탐색트리나 배열에 비해 속도가 훨씬 빠름) 데이터 비교에 효율적이다.(커다란 데이터를 짧은 길이로 축약 가능하므로) key는 중복 불가, value는 가능 수정 가능 일반적으로 배열로 미리 해시 테이블 사이즈만큼 생성 후에 사용 해시 테이블은 key와 value가 1대 1로 매핑되어 있기에 se..