http://blog.naver.com/wlsgkr91/220898511910
자료구조란??
-사람들이 사물을 정리하는 것과 마찬가지로 프로그램에서 자료를 정리하는 여러 가지 구조들이 있다. 이를 자료구조라 부른다.
스택이란??
-책상에 책을 쌓아 놓은 것처럼 자료들을 정리하는 구조를스택이라 한다.
-스택에서는 맨 위에서만 자료를 추가하거나 제거할 수 있다.
큐란??
-상범의 줄에 해당하는 자료 구조를 우리는 큐라 부른다.
큐에서는 먼저 도착한 자료가 먼저 빠져나간다.
예를들어
물건을 쌓아 놓는 것= 스택
영화관 매표소의 줄 = 큐
할 일 리스트 =리스트
영어사전 = 사전, 탐색구조
지도= 그래프
조직도= 트리
이렇게 예를 들어 설명할 수 있다.
문제를 처리하는 절차가 필요한데이를 알고리즘이라 부른다.
프로그램= 자료구조 +알고리즘
만약 배열에 점수를 저장하면 배열이 자료를 저장하는 구조 즉 자료구조가 된다.
배열에 저장된 점수들 중에서 가장 큰 점수를 찾는 절차가알고리즘이다.
자료구조와 알고리즘의 예를 든 코드를 써보도록 한다.
#define MAX_ELEMENTS 100
int score[MAX_ELEMENTS]; //자료구조
int main()
{
int i,tmp;
tmp=score[0];
for(i=1;i<n;i++){ //알고리즘
if(score[i>tmp){
tmp= score[i];
}
}
printf("%d\n",tmp);
}
알고리즘이란?
-컴퓨터로 문제를 풀기위한 단계적인 절차
-문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을정밀하게 장치가 이해할 수 있는 언어로 기술한 것.
-특정한 일을 수행하는 명령어들의 집합
정의
입력: 0개 이상의 입력이 존재하여야 한다.
출력: 1개이상의 출력이 존재하여야 한다.
명백성: 각 명령어의 의미는 모호하지 않고 명확해야한다.
유한성: 한정된 수의 단계 후에는 반드시 종료되어야 한다.
유효성: 각 명령어들은 실행 가능한 연산이어야 한다.
알고리즘을 구사하는 4가지 방법이 있다.
1.영어나 한국어 같은 자연어
-자연어를 사용하기 때문에 모호성을 제거하기 위하여명령어로 쓰이는 단어들을 명백하게 정의 해야한다.
2.흐름도
-알고리즘이 복잡해질수록 기술하기 힘들다.
3.유사 코드
4.프로그래밍 언어
3,4-모두 명백한 의미를 가지고 있어서 알고리즘을 기술하는데 안성맞춤이다.
'프로그래밍 > 자료구조' 카테고리의 다른 글
자료구조 공부 알고리즘의 복잡도 분석 방법 (0) | 2017.01.03 |
---|---|
자료구조 공부하기 추상 데이터 타입 (0) | 2016.12.30 |
자료구조 메모리,포인터,변수 예제 (0) | 2016.12.30 |
동적 메모리 할당 (0) | 2016.12.30 |
문자열 (0) | 2016.12.30 |