목차
1. 프로그래밍 언어를 세대별로 구분하고 각각의 특징에 대해 설명
하시오.
2. “AA=B-20”에 대한 파스트리를 그리시오.
3. 부프로그램에 대해 간략히 설명하시오
4. 스택과 규에 대해 비교 설명하시오
5. 그래프의 순회 방식에서 깊이우선탐색과 너비우선탐색에 대해
비교, 설명하시오.
하시오.
2. “AA=B-20”에 대한 파스트리를 그리시오.
3. 부프로그램에 대해 간략히 설명하시오
4. 스택과 규에 대해 비교 설명하시오
5. 그래프의 순회 방식에서 깊이우선탐색과 너비우선탐색에 대해
비교, 설명하시오.
본문내용
조:부프로그램
◎ 부프로그램의 종류
▷ 서브루틴(subroutine)과 함수(function)으로 구분
부프로그램의 종류와 차이점
종 류
반환값 여부
실행후 동작
서브루틴
자신의 이름으로 값을 변환하기 않는다.
호출한 프로그램의 다음 문장실행
함 수
자신의 이름으로 값을 변환한다.
호출한 프로그램의 값을 받아 실행
▷ 함수가 있는 프로그램의 동작
X=함수A호출
result 값
:
return result
◎ 매개변수
▷ 실행될 부프로그램에 값을 전달할수 있음
▷ 부프로그램의 형식
subprogram 부프로그램이름(매개변수 리스트)
선언부
몸체
end 부프로그램이름
▷ 호출형식 부프로그램이름(매개변수 리스트)
▷ C 언어에서 function 이라는 함수를 정의하는 예
void function (int x, int y)
{
int sum = x+y;
printf("sum : %d",sum);
}
▷ 함수를 호출function(10,20);
◎ 매개변수전달방식( C언어 )
방 식
설 명
값에 의한 전달
값을 보냄
주소에 의한 전달
변수의 주소를 보냄
▷ 값에 의한 전달
- 실 매개변수의 값을 형식 매개변수에 저장해서 동작하는 방식
함수 호출 부분
함수 정의 부분
:
a = 10 ; b = 20 ;
function(a,b);
:
function(int x, int y)
{
x=x+1;
y=y+1;
}
▷ 주소에 의한 전달
- 실 매개변수의 주소를 형식 매개변수에 저장해서 동작하는 방식
함수 호출 부분
함수 정의 부분
:
a = 10 ; b = 20 ;
function(a,b);
:
function(int *ptr1, int *ptr2)
{
*ptr1=*ptr1+1;
*ptr2=*ptr2+1;
}
4. 스택과 규에 대해 비교 설명하시오
스택
◎ 스택이란, 노드의 삽입이나 삭제가 꼭대기(top)라고 불리는 스택의 한쪽 끝에서
만 이루어지는 자료 구조이다.
후입 선출(LIFO : Last-In First-Out)
B
A
◎ 배열로 구현한 스택
top
top 은데이터 삽입과 삭제가 이루어지는 배열의 첨자
stack[4]
stack[3]
stack[2]
stack[1]
stack[0]
<------
0
top
스택에 데이터 10을 삽입함
stack[4]
stack[3]
stack[2]
stack[1]
stack[0]
10
1
top
◎ 4개의 데이터의 추가 삽입
- 스택이 가득차게 되고, top은 5가됨:더이상 데이터삽입할수없음
stack[4]
50
if(top이 스택 크기와 같은가)
stack[3]
40
데이터 삽입하지 못함
stack[2]
30
}else{
stack[1]
20
데이터삽입
stack[0]
10
5
top을 1증가 }
top
◎ 데이터 삭제
- 데이터 삭제는 top을 1감소시키기만 하면 됨
stack[4]
stack[3]
stack[2]
stack[1]
20
stack[0]
10
2
top
- 새로운 데이터를 삽입하면 stack[1]에 저장되어 20이 지워지게 됨
stack[4]
stack[3]
stack[2]
stack[1]
stack[0]
10
1
top
- 다시 데이터를 삭제하면 다음과 같이 top이 0이됨:더이상 데이터를 삭제할수 없음
stack[4]
if (top이 0인가){
stack[3]
데이터 삭제하지 못함
stack[2]
} else {
stack[1]
top을 1감소
stack[0]
0
}
큐
◎ 한쪽 방향으로 데이터가 삽입되고 반대 방향으로 데이터가 삭제되는
구조에서만 이루어지는 자료 구조이다.
◎ 선입 선출(FIFO : First-In First-Out)
◎ 배열로 구현하는 큐
- front는 첫 번째 데이터가 저장된 배열의 첨자고, rear는 새로운 데이터가 삽입
될 배열의 첨자(초기 상태이므로 front와 rear는 0)
- 데이터 10을 삽입
◎ 계속해서 4개의 데이터를 삽입하면 다음과 같이 큐가 가득 차게 되고 ,rear는
5:더이상 데이터를 삽입할 수 없음
if(rear 큐크기와 같은가) {
데이터 삽입하지 못함
} else {
데이터 삽입
rear를 1증가
}
◎ 데이터 삭제
- 데이터 삭제 전
- front를 1 증가 : front를 1증가시켜 front는 1이 된다.
◎ 원형 큐
- 큐의 앞부분이 비어있음에도 rear가 큐의 크기와 같아 데이터를 삽입할 수 없는 문제점
◎ 문제점을 해결하는 가장 바람직한 방법중 하나가 원형 큐
- 처음과 끝을 연결한 구조로 마지막 공간이 다음 큐의 시작점
- 연결 리스트로 구현한 큐
* front는 가장 먼저 삽입된 노드를 가리킴
◎ 데이터 삽입
- 데이터 30을 저장할 노드를 생성하고, 데이터 30을 데이터 영역에 저장하고,
포인터 영역에 NULL을 저장
- 연결 리스트의 마지막 노드)데이터20인 노드) 의 포인터 영역이 새롭게 생성된
데이터 30인 노드를 가리키게 함
◎ 데이터 삭제
- front가 가리키는 노드의 포인터 영역이 가리키는 곳을 front가 가리키게함
- 데이터 10인 노드를 주기억장치에서 삭제
5. 그래프의 순회 방식에서 깊이우선탐색과 너비우선탐색에
대해 비교, 설명하시오.
◎ 깊이 우선 탐색(DFS, Depth First Search)
- 주어진 장점 v를 출발점으로 하여 이를 방문
- 다음 v에 인접하고 아직 방문하지 않은 장점 w를 선택하여 w를 출발점으
로 해서 다시 깊이 우선 탐색을 시작
- 이것을 모든 장점이 한 번씩 방문될 때가지 반복
- 인접한 모든 장점이 이미 방문한 정점 v인 경우는 가장 최근에 방문했던
정점 중에서, 장문하지 않은 정점 w를 가진 정점을 선택하여 정점
w로부터 다시 깊이 우선 탐색을 시작
-(a) 1-2-4-8-5-6-3-7 (b) 1-2-4-8-5-7-3-7
◎ 너비 우선 탐색(BFS, Breadth first Search)
- 주어진 정점 v를 출발점으로 하여 이를 방문
- v에 인접한 정점 w들을 먼저 모두 방문하고 그 다음으로 w에 인접하고
아직 방문하지 않은 정점들을 모두 방문
- 이 과정을 반복하여 더 이상 방문할 노드가 없을 때까지 계속하여 방문
-(a) 1-2-3-4-5-6-7-8 (b) 1-2-3-4-5-6-8-7
◎ 부프로그램의 종류
▷ 서브루틴(subroutine)과 함수(function)으로 구분
부프로그램의 종류와 차이점
종 류
반환값 여부
실행후 동작
서브루틴
자신의 이름으로 값을 변환하기 않는다.
호출한 프로그램의 다음 문장실행
함 수
자신의 이름으로 값을 변환한다.
호출한 프로그램의 값을 받아 실행
▷ 함수가 있는 프로그램의 동작
X=함수A호출
result 값
:
return result
◎ 매개변수
▷ 실행될 부프로그램에 값을 전달할수 있음
▷ 부프로그램의 형식
subprogram 부프로그램이름(매개변수 리스트)
선언부
몸체
end 부프로그램이름
▷ 호출형식 부프로그램이름(매개변수 리스트)
▷ C 언어에서 function 이라는 함수를 정의하는 예
void function (int x, int y)
{
int sum = x+y;
printf("sum : %d",sum);
}
▷ 함수를 호출function(10,20);
◎ 매개변수전달방식( C언어 )
방 식
설 명
값에 의한 전달
값을 보냄
주소에 의한 전달
변수의 주소를 보냄
▷ 값에 의한 전달
- 실 매개변수의 값을 형식 매개변수에 저장해서 동작하는 방식
함수 호출 부분
함수 정의 부분
:
a = 10 ; b = 20 ;
function(a,b);
:
function(int x, int y)
{
x=x+1;
y=y+1;
}
▷ 주소에 의한 전달
- 실 매개변수의 주소를 형식 매개변수에 저장해서 동작하는 방식
함수 호출 부분
함수 정의 부분
:
a = 10 ; b = 20 ;
function(a,b);
:
function(int *ptr1, int *ptr2)
{
*ptr1=*ptr1+1;
*ptr2=*ptr2+1;
}
4. 스택과 규에 대해 비교 설명하시오
스택
◎ 스택이란, 노드의 삽입이나 삭제가 꼭대기(top)라고 불리는 스택의 한쪽 끝에서
만 이루어지는 자료 구조이다.
후입 선출(LIFO : Last-In First-Out)
B
A
◎ 배열로 구현한 스택
top
top 은데이터 삽입과 삭제가 이루어지는 배열의 첨자
stack[4]
stack[3]
stack[2]
stack[1]
stack[0]
<------
0
top
스택에 데이터 10을 삽입함
stack[4]
stack[3]
stack[2]
stack[1]
stack[0]
10
1
top
◎ 4개의 데이터의 추가 삽입
- 스택이 가득차게 되고, top은 5가됨:더이상 데이터삽입할수없음
stack[4]
50
if(top이 스택 크기와 같은가)
stack[3]
40
데이터 삽입하지 못함
stack[2]
30
}else{
stack[1]
20
데이터삽입
stack[0]
10
5
top을 1증가 }
top
◎ 데이터 삭제
- 데이터 삭제는 top을 1감소시키기만 하면 됨
stack[4]
stack[3]
stack[2]
stack[1]
20
stack[0]
10
2
top
- 새로운 데이터를 삽입하면 stack[1]에 저장되어 20이 지워지게 됨
stack[4]
stack[3]
stack[2]
stack[1]
stack[0]
10
1
top
- 다시 데이터를 삭제하면 다음과 같이 top이 0이됨:더이상 데이터를 삭제할수 없음
stack[4]
if (top이 0인가){
stack[3]
데이터 삭제하지 못함
stack[2]
} else {
stack[1]
top을 1감소
stack[0]
0
}
큐
◎ 한쪽 방향으로 데이터가 삽입되고 반대 방향으로 데이터가 삭제되는
구조에서만 이루어지는 자료 구조이다.
◎ 선입 선출(FIFO : First-In First-Out)
◎ 배열로 구현하는 큐
- front는 첫 번째 데이터가 저장된 배열의 첨자고, rear는 새로운 데이터가 삽입
될 배열의 첨자(초기 상태이므로 front와 rear는 0)
- 데이터 10을 삽입
◎ 계속해서 4개의 데이터를 삽입하면 다음과 같이 큐가 가득 차게 되고 ,rear는
5:더이상 데이터를 삽입할 수 없음
if(rear 큐크기와 같은가) {
데이터 삽입하지 못함
} else {
데이터 삽입
rear를 1증가
}
◎ 데이터 삭제
- 데이터 삭제 전
- front를 1 증가 : front를 1증가시켜 front는 1이 된다.
◎ 원형 큐
- 큐의 앞부분이 비어있음에도 rear가 큐의 크기와 같아 데이터를 삽입할 수 없는 문제점
◎ 문제점을 해결하는 가장 바람직한 방법중 하나가 원형 큐
- 처음과 끝을 연결한 구조로 마지막 공간이 다음 큐의 시작점
- 연결 리스트로 구현한 큐
* front는 가장 먼저 삽입된 노드를 가리킴
◎ 데이터 삽입
- 데이터 30을 저장할 노드를 생성하고, 데이터 30을 데이터 영역에 저장하고,
포인터 영역에 NULL을 저장
- 연결 리스트의 마지막 노드)데이터20인 노드) 의 포인터 영역이 새롭게 생성된
데이터 30인 노드를 가리키게 함
◎ 데이터 삭제
- front가 가리키는 노드의 포인터 영역이 가리키는 곳을 front가 가리키게함
- 데이터 10인 노드를 주기억장치에서 삭제
5. 그래프의 순회 방식에서 깊이우선탐색과 너비우선탐색에
대해 비교, 설명하시오.
◎ 깊이 우선 탐색(DFS, Depth First Search)
- 주어진 장점 v를 출발점으로 하여 이를 방문
- 다음 v에 인접하고 아직 방문하지 않은 장점 w를 선택하여 w를 출발점으
로 해서 다시 깊이 우선 탐색을 시작
- 이것을 모든 장점이 한 번씩 방문될 때가지 반복
- 인접한 모든 장점이 이미 방문한 정점 v인 경우는 가장 최근에 방문했던
정점 중에서, 장문하지 않은 정점 w를 가진 정점을 선택하여 정점
w로부터 다시 깊이 우선 탐색을 시작
-(a) 1-2-4-8-5-6-3-7 (b) 1-2-4-8-5-7-3-7
◎ 너비 우선 탐색(BFS, Breadth first Search)
- 주어진 정점 v를 출발점으로 하여 이를 방문
- v에 인접한 정점 w들을 먼저 모두 방문하고 그 다음으로 w에 인접하고
아직 방문하지 않은 정점들을 모두 방문
- 이 과정을 반복하여 더 이상 방문할 노드가 없을 때까지 계속하여 방문
-(a) 1-2-3-4-5-6-7-8 (b) 1-2-3-4-5-6-8-7
키워드
추천자료
북한 현대소설
온라인 내용물의 자율규제 방안
소비자구매의사결정과정의 각 과정에 있어서 기업이 수행할 수 있는 전략 수립
한류열풍을 어떻게 바라보아야 할까?
[아동발달]피아제(Piaget)이론과 아동의 교육적 시사점
학교교육의 내실화를 위한 방안
과제 중심 모델
[해고][해고의 정당한 이유][경영상해고][정리해고][징계해고][부당해고]해고의 개념, 해고의...
행정개혁의 의미와 방향에 대해서 설명하시오.
국어과와 수학과지도의 교과재량활동 사례, 사회과와 음악과지도의 교과재량활동 사례, 생활...
글로벌무역 수출업무의 일반적 절차
[연기교육교재 교정본] 연극 배우, 뮤지컬 배우 연기 교재
[독서보고서] 우리의 교육 몸으로 가르치자를 읽고 (각 장별 요약과 느낀 점을 중심으로)
소개글