• 검색 결과가 없습니다.

데이터 구조 실습 (6주차)

N/A
N/A
Protected

Academic year: 2021

Share "데이터 구조 실습 (6주차)"

Copied!
2
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

- 1 -

데이터 구조 실습 (6주차)

2021. 4. 7

학번: 성명:

1. 다음의 동적 자료구조를 생성하고자 한다. 이 자료구조는 3개의 노드로 구성되어 있고, 각 노드는 (val, next)의 2개 필드를 포함하는 구조체이다. 여기서 val은 int 타입이며, next는 노드를 가리키는 포인터이다. 노 드들은 next 필드를 통해서 연결되는 것을 알 수 있다. 다음에 답하시오.

a. 노드의 타입을 정의하라. 그 타입의 이름은 struct node이다.

b. struct node의 다른 타입 이름으로 nodeType을 만들어라.

b. first, p, q, r을 nodeType에 대한 포인터로 선언하라.

c. 한 개의 노드를 동적 생성하고, p가 이를 가리키게 하라.

d. p가 가리키는 구조체의 val 필드에 10을 할당하고, next 필드에는 NULL을 할당하라.

e. 위의 c), d)의 과정을 반복하여 2개의 노드를 동적 생성하고, q, r이 이들을 각각 가리키게 하라.

f. q, r이 가리키는 구조체의 val 필드에 각각 20, 30을 할당하고, next에는 NULL을 할당하라.

g. p가 가리키는 구조체의 next 필드가 q가 가리키는 구조체를 가리키게 하라.

h. q가 가리키는 구조체의 next 필드가 r이 가리키는 구조체를 가리키게 하라.

I. first가 p가 가리키는 구조체를 가리키게 하라.

j. first 포인터를 이용하여 첫 번째 노드의 val 필드 값을 출력하라.

k. first 포인터를 이용하여 두 번째 노드의 val 필드 값을 출력하라.

l. first 포인터를 이용하여 세 번째 노드의 val 필드 값을 출력하라.

m. 위의 j~k의 과정을 반복 구조를 이용하여 처리하라.

n. a ~m에서 작성한 문장들을 포함한 main() 함수를 작성하고, 테스트하라.

(2)

- 2 - 2. 다음에 답하시오.

#define MAX_SIZE 20

typedef struct { // 스택 타입 정의 int stack[MAX_SIZE];

int top;

} stack_type;

typedef stack_type* stack_ptr;

void init(stack_ptr s) { s->top = -1; } main() {

stack_type s; // 스택 생성

init(&s); // 스택 초기화: top을 –1로 설정 push(&s, 1); // 스택에 값 저장

push(&s, 2);

push(&s, 3);

//스택 값 출력

while (!is_empty(s) ) {

printf(“%d\n“, ( pop(&s));

} }

a. 다음 스택 연산 함수를 작성하라:

i) int is_empty(stack_type s) {}

ii) int is_full(stack_type s) {}

b. a)의 함수를 이용하여 다음 스택 연산 함수를 작성하라:

i) void push(stack_ptr s, int val) {}

ii) int pop(stack_ptr s) {}

c. a), b)의 함수를 이용하여 위의 코드를 완성하고, 테스트하라.

3. 2)에서 정의된 스택을 이용하여 주어진 문자열을 역순으로 출력하고자 한다. 다음 순서대로 문제를 해결하라.

a. “abcdefgh”의 문자열 str을 선언하면서 초기화하라.

b. str에 포함된 문자들을 순서대로 스택 s에 저장하라.

c. b)에서 스택 s에 저장된 문자들을 꺼내어 출력하라.

d. a) ~ c)의 과정을 수행하는 C 프로그램을 작성하고, 테스트하라.

참조

관련 문서

트리(일반 트리) 중에서 자식 노드의 수가 2개 이하인 것을 이진 트리(binary tree)라고 한다.. 일반 트리는 앞에서 보았듯이 컴퓨터에

이동가능한 두개의 메이저 코드의 변형 모든 코드 타입을

Display는 가능하나 저자의 이름과 성을 구분하기 곤란  복잡한 문서들의 교환에 부적합... 너무 복잡해서

auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void.. default

◈ 데이터 필드로 기술된 데이터 타입 (data type)과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법. 간의

채워지지 않은 최외각 궤도를 가지고 있는 원자는 전자를 얻거나 버려서, 혹은 다른 원자와 전자를 공유함으로써 안정 된 전자 배위를 가지려고 한다...

그림(3)의 동력행정에서는 압축행정이 끝나는 상사점의 조금 전에 점화 플러그의 불꽃에 의해 혼합기에 점화되면, 혼합기가 연소하여 발생한 고압가스의 압력을 받

다음 단계는 흐름 시스템(하천 시스템 모형도), 횡단면 데이터, 그리고 수리 구조 데이터(교량, 암거, 위어 등등)에 대한 정보와 관련성을 구성하고 있는,