목록알고리즘과 자료구조 (12)
나의 IT일지
자료구조에는 여러 형식으로 데이터를 저장한다. 그리고 데이터를 저장하는 방식에 따라 선형형식, 비선형형식으로 나뉜다. 선형 구조 : 데이터를 1:1 관계로 하나씩 나열시킨 구조로, list, stack, queue가 해당 구조에 해당한다. 비선형 구조 : 데이터를 1:n 관계로 나열 시킨 구조로, Heap, Tree가 해당 구조에 해당한다. 그중에 데이터를 입력한 순서대로 저장한 뒤, 저장한 순서대로 데이터를 사용하기 위한 자료형태가 있는데, 이 자료형태를 큐(Queue)라고 한다. 큐는 데이터를 대기열처럼 저장하는 들어오는 순서대로 저장하는 자료구조로, 가장 먼저 삽입된 데이터를 가장 먼저 삭제되는 선입선출 형식을 사용한다. 큐에서는 데이터를 삽입하는 것을 "enqueue", 데이터를 제거하는 것을 "..
자료구조에는 여러 형식으로 데이터를 저장한다. 그리고 데이터를 저장하는 방식에 따라 선형형식, 비선형형식으로 나뉜다. 선형 구조 : 데이터를 1:1 관계로 하나씩 나열시킨 구조로, list, stack, queue가 해당 구조에 해당한다. 비선형 구조 : 데이터를 1:n 관계로 나열 시킨 구조로, Heap, Tree가 해당 구조에 해당한다. 이중, 데이터의 순서를 바꾸거나 데이터의 순서를 역으로 사용해야 하는 경우에 사용하는 자료구조가 있는데, 이 자료구조가 스택(stack)이다. 스택이란 데이터를 쌓아올린 듯한 형식을 가진 자료구조로, 가장 나중에 삽입되는 데이터가 제일 먼저 삭제되는 형식인 후입선출 형식을 사용한다. 스택에서는 데이터의 삽입을 "push", 데이터의 삭제를 "pop", 가장 나중에 삽..
자료구조에는 여러 형식으로 데이터를 저장한다. 그리고 데이터를 저장하는 방식에 따라 선형형식, 비선형형식으로 나뉜다. 선형 구조 : 데이터를 1:1 관계로 하나씩 나열시킨 구조로, list, stack, queue가 해당 구조에 해당한다. 비선형 구조 : 데이터를 1:n 관계로 나열 시킨 구조로, Heap, Tree가 해당 구조에 해당한다. 이중에서, 제일 많이 사용하는 자료구조가 "List"인데, "List"란 직선상으로 연결되어있는 노드에 데이터를 저장하는 자료구조이다. "List"에는 배열리스트와 연결리스트로 나뉜다. 배열 리스트는 배열의 형태로 노드를 연결해서 데이터를 저장하는 형식이며, 연결 리스트란 주소를 이용해서 노드를 연결하는 형식이다. 이때, node(노드)란 데이터를 저장하는 공간으로,..
자료구조에는 여러 형식으로 데이터를 저장한다. 그리고 데이터를 저장하는 방식에 따라 기본형식, 선형형식, 비선형형식으로 나뉜다. 선형 구조 : 데이터를 1:1 관계로 하나씩 나열시킨 구조로, list, stack, queue가 해당 구조에 해당한다. 비선형 구조 : 데이터를 1:n 관계로 나열 시킨 구조로, Heap, Tree가 해당 구조에 해당한다. 이중에서, 제일 많이 사용하는 자료구조인 "List"는 일직선 상으로 차례대로 데이터를 저장하는 자료구조이다. 이때 차례대로란 데이터를 기준에 따라 저장하는 것이 아닌, 노드의 순서에 따라 1개씩 저장하는 것을 의미한다. 이때, node(노드)란 데이터를 저장하는 공간으로, 구조체를 통해 해당 노드에 어떠한 데이터를 저장할지 결정한다. typedef str..
데이터는 의미나 목적없이 단순히 수집된 정보로, 해당 데이터를 의미와 목적으로 구분해서 저장할 필요가 있다. 이럴 때 사용되는 개념이 자료구조 개념이다. 자료구조란 데이터를 물리적 또는 논리적으로 구분하여 컴퓨터에 저장하는 방법으로, 알고리즘을 통해 데이터를 구별하는 나열 방식을 코드로 구성한다. 자료구조의 종류 사용자가 데이터를 사용하기 위해서는, 목적에 따라 데이터를 구별하고, 해당 구별된 데이터를 컴퓨터에 종류별로 저장함으로써 메모리의 공간을 확보한다. 그래서 자료구조를 통한 데이터의 구별 방식은 중요하다. 자료구조는 데이터를 저장하기 위해서는 저장공간이 필요하다. 이때 저장공간을 노드라고 하며, 노드는 여러 데이터를 저장해야 하는 경우가 많기 때문에, 구조체를 통해 해당 노드에 어떠한 데이터를 저..
컴퓨터는 프로그램의 명령에 따라 순서대로 일을 처리하고, 그에 따른 결과를 얻는다. 이러한 과정중에서 우리는 알고리즘이라는 것을 사용한다. 알고리즘이란 문제를 해결하기 위한 명확하게 정의되고 순서가 있는 규칙으로 이루어진 과정을 말한다. 즉, 우리가 어떤 문제에 대한 코딩을 할 때, 코딩에 대한 틀을 만드는 것을 알고리즘이라고 할 수 있다. 알고리즘 과정 알고리즘의 과정은 어떤 문제를 다루느냐에 따라 설계 방법이 달라지지만, 알고리즘을 설계하는 큰 틀은 바뀌지 않는다. 문제를 해결하기 위해서는 구현해야 하는 내용 프로그램의 기능을 구현하기 위한 사용 변수 프로그램의 기능을 구현하기 위한 상세 내용 예시로, "*"을 통해 직각 삼각형을 출력한다고 하자. 그렇다면 위의 틀에 따라 설계를 하면 다음과 같다. ..