새발블로그

[C언어로 쉽게 풀어쓴 자료구조] 7장 본문

Computer Science/Data Structure

[C언어로 쉽게 풀어쓴 자료구조] 7장

EUG 2023. 8. 28. 22:22

01 다음은 연결 리스트를 이용하여 스택을 표현한 것이다. 이에 대한 설명으로 옳지 않은 것은? (단, push는 스택에 자료를 삽입하는 연산이고, pop은 스택에서 자료를 삭제하는 연산이다)

①스택에 가장 최근에 입력된 자료는 top이 지시한다.

②스택에 입력된 자료 중 d가 가장 오래된 자료이다.

③(ㄴ)에서 자료 c를 가져오려면 pop연산이 2회 필요하다.

④(ㄱ)에서 자료의 입력된 순서는 d, c, b이다.

 

02 삽입과 삭제작업이 자주 발생할 때 실행시간이 가장 많이 소요되는 자료구조는?

(1)배열로 구현된 리스트

(2)단순 연결 리스트

(3)원형 연결 리스트

(4) 이중 연결 리스트

 

03 원형 연결 리스트에서 특정한 값을 탐색하는 함수 search()를 작성하고 테스트하라. search()는 다음와 같은 원형을 가진다.

// 원형 연결 리스트 L에서 data를 가지고 있는 노드를 찾아서 반환한다.

LIstNode *search(CListType *L, element data);

 

04 원형 연결 리스트에 저장된 데이터의 개수를 반환하는 함수 get_size()를 작성하고 테스트하라.

get_size()는 다음과 같은 원형을 가진다.

//원형 연결 리스트 L에 저장된 데이터의 개수를 반환한다. 

int get_size(CListType *L);

 

05 이중 연결 리스트의 장점과 단점은 무엇인가?

 

06 이중 연결 리스트를 역순으로 순회하면서 저장된 데이터 값을 출력하는 프로그램을 작성해보자.

데이터의 개수를 입력하시오: 3

노드 #1의 데이터를 입력하시오: 2
노드 #2의 데이터를 입력하시오: 6
노드 #3의 데이터를 입력하시오: 9

데이터를 역순으로 출력 : 9 6 2

07 이중 연결 리스트에서 특정한 값을 탐색하는 함수 search()를 작성하고 테스트하라. search()는 다음과 같은 원형을 갖니다.

// 이중 연결 리스트 L에서 data를 가지고 있는 노드를 찾아서 반환한다.

DListNode *search(DListNode *L, element data);