자료구조

프로그래밍 컴퓨터과학은 프로그래밍을 연구하는 것이 아닙니다. 그러나 프로그래밍은 컴퓨터 과학자가 수행하는 중요한 일의 한 부분입니다. 프로그래밍은 우리의 풀이법을 표현하는 방법입니다. 따라서 이 프로그램 언어 표현과 그것을 작성하는 과정은 컴퓨터 과학의 기본이 됩니다. 프로그래밍은 알고리즘을 컴퓨터가 실행할 수 있는 프로그래밍 언어로 인코딩하는 절차입니다. 여러 다른 종류의 프로그램 언어와 컴퓨터가 존재하지만, 프로그래밍의 첫 단계는 알고리즘을 표현하는것 입니다. 알고리즘이 없는 프로그램은 없습니다. 알고리즘은 문제의 현재상태를 표현하는데 필요한 데이터와 의도한 결과를 생성하는데 필요한 일련의 절차로 문제의 해결법을 기술합니다. 따라서 프로그래밍 언어는 절차와 데이터를 모두를 표현할 수 있어야 합니다. ..
개요 덱(Double Ended Queue)은 앞과 뒤 양쪽 모두에서 데이터의 삽입과 제거가 가능한 큐를 말합니다. 구현 덱을 구성하는 연산은 다음과 같습니다.fnIinit () : 덱을 초기화 합니다. fnAddFront(item) : 덱의 전단에 item 을 삽입합니다. fnDelFront() : 덱의 전단에서 item 을 1개 삭제 합니다. fnAddRear(item) : 덱의 후단에 item 을 삽입합니다. fnDelRear() : 덱의 후단에서 item 을 1개 삭제 합니다. fnGetFront() : 덱의 전단에 있는 item 을 1개 얻습니다. 단, 삭제는 하지 않습니다. fnGetRear() : 덱의 후단에 있는 item 을 1개 얻습니다. 단, 삭제는 하지 않습니다. fnIsEmpty()..
자료형(Data Type) 컴퓨터에서 자료(데이터)란 0과 1의 나열입니다. 예를 들어 01001100110010110101110011011100 은 정수일 수도 있고 실수, 문자일수도 있습니다. 이 자료의 해석결과인 값은 자료가 어떤 형(Type)인지에 따라 달라집니다.데이터를 어떻게 해석하면 되는 것인지 컴파일러(또는 인터프리터)에게 알려주는 속성이라고 할 수 있습니다. 이 자료형은 일반적으로 값(value)의 집합과 그 값과 관련된 연산들의 집합을 의미합니다. 집합 즉, 수학적인 모델입니다.자료형은 다음과 같은 종류가 있습니다. 원시자료형 : 기본빌딩블록 (부울, 정수, 실수, 문자 등) 복합자료형 : 원시형 또는 또다른 복합자료형을 조합하여 만든 것 (struct, 배열, 문자열 등) 추상자료형 ..
개요 정점(vertex, 노드, 포인트) 들과 이들 사이의 연결관계를 표현한 추상적 개념 및 자료구조 입니다.그래프의 표현은 아래의 그림과 같이 정점과 이들을 잊는 간선(edge)의 집합으로 나타냅니다. 용어 경로 간선으로 연결된 정점의 순서를 의미합니다. 순환 한 정점에서 시작하여 그 정점 자신으로 돌아오는, 길이가 3 이상인 경로를 의미합니다. 연결된 그래프 모든 정점에 대해서 그래프 내의 다른 정점과 연결된 경로가 있다면 연결된 그래프라고 부릅니다. 완전그래프 그래프의 모든 두 정점쌍이 하나의 간선으로 연결된 그래프 입니다. 트리 순환이 존재하지 않는 그래프입니다. 종류 그래프는 다음과 같이 3가지 종류로 나누어 볼 수 있습니다. 무향 그래프 (Undirected Graphs) 각 정점을 연결하는 ..
개요 기본적인 자료구조는 객체를 모아 놓은 것입니다. 예를들어 집합(set)은 값의 모음이고, 관련된 연산으로는 값을 추가하고, 삭제하고, 집합내부에 값이 있는지 조사하는 것이 있을 수 있습니다. 이러한 객체를 모아 놓은 기본 자료구조로는 큐와 스택이 있습니다. 이 둘은 간단하면서 널리 사용되기 때문에 유용합니다. 이 두 자료구조를 C 언어를 이용하여 구현해보도록 하겠습니다. 스택 LIFO (Last In First Out) 정책에 기반한 자료구조입니다. 출입구를 한쪽으로만 제한한 자료구조입니다. 가장 마지막에 자료구조로 삽입된 아이템이 가장 먼저 밖으로 빠져나오는 구조입니다. 실생활에서는 먼저 엘리베이터에 탑승한 사람이 엘리베이터의 안쪽으로 밀려 들어가기 때문에 가장 나중에 내리게 되는 현상을 통해서 ..
쓴웃음
'자료구조' 태그의 글 목록