데이터 구조 1장 숙제 소개 시안석유대학교

 소개 1장

1. 데이터, 데이터 요소, 데이터 항목, 데이터 객체, 데이터 구조, 논리적 구조, 저장 구조 및 추상 데이터 유형 등의 개념을 간략하게 설명합니다.

답변:

데이터(Data) : 객관적인 사물을 상징적으로 표현한 것으로, 컴퓨터에 입력되어 컴퓨터 프로그램에 의해 처리될 수 있는 모든 기호의 총칭을 말한다. 수학적 계산에 사용되는 정수 및 실수, 텍스트 편집에 사용되는 문자열, 그래픽, 이미지, 사운드, 애니메이션 및 특수 인코딩으로 정의된 멀티미디어 프로그램에서 처리되는 기타 데이터 등입니다.

데이터요소 : 일반적으로 컴퓨터에서 전체적으로 고려되고 처리되는 데이터의 기본 단위이다. 어떤 경우에는 데이터 요소를 요소, 노드, 레코드 등이라고도 합니다. 데이터 요소는 학생 ​​기록, 트리의 체스판 패턴(상태), 그래프의 꼭지점 등과 같은 객체를 완벽하게 설명하는 데 사용됩니다.

데이터 항목(Data item) : 데이터 요소를 구성하는 가장 작은 단위로, 독립적인 의미를 가지며, 나눌 수 없다. 예를 들어 학생 기본정보 테이블의 학번, 이름, 성별 등이 모두 데이터 항목이다.

데이터 객체(Data object) : 동일한 속성을 가진 데이터 요소의 집합이며 데이터의 하위 집합입니다. 예를 들어, 정수 데이터 객체는 집합 N={0 1 2 ,… } 이고, 알파벳 문자 데이터 객체는 집합 C={'A' , ' B ' ,…, ' Z ' ,  ' a ' , ' b ' ,..., ' z '} , 학생 기본정보 테이블도 데이터 객체가 될 수 있다.

데이터 구조 : 서로 하나 이상의 특정 관계를 갖는 데이터 요소의 모음입니다. 즉, 데이터 구조는 "구조"를 갖는 데이터 요소의 집합이고, "구조"는 데이터 요소 간의 관계를 의미합니다.

논리적 구조 (Logical Structure ) : 데이터를 논리적 관계로 기술하며, 데이터 저장과는 관련이 없고 컴퓨터와는 독립적이다. 따라서 데이터의 논리적 구조는 특정 문제를 추상화한 수학적 모델로 볼 수 있습니다.

저장 구조: 컴퓨터에 있는 데이터 객체의 저장 표현으로, 물리적 구조 라고도 합니다 .

추상 데이터 유형 : 응용 문제를 나타내는 사용자 정의 수학적 모델과 이 모델에 정의된 작업 집합에 대한 일반적인 용어입니다. 구체적으로 여기에는 데이터 개체, 데이터 개체에 대한 관계 모음, 데이터 개체에 대한 기본 작업 모음의 세 부분이 포함됩니다.

2. 데이터 구조의 예를 제시하고 논리적 구조와 저장 구조의 의미와 상호 관계를 설명합니다.

답변:

예를 들어, 학생의 학번, 이름, 성별, 출신지, 전공 등 기본적인 학생 정보가 포함된 테이블이 있습니다. 각 학생의 기본정보 기록은 하나의 데이터 요소에 해당하며, 학생 기록은 일련번호에 따라 배열되어 학생 기본정보 기록의 선형적 서열을 형성합니다. 전체 테이블에는 단 하나의 시작 노드(이전 레코드 없음)와 하나의 터미널 노드(뒤에 레코드 없음)만 있고, 나머지 노드에는 각각 하나의 직접 선행 노드와 직접 후속 노드가 있습니다. 학생 기록 간의 이러한 관계는 학생 테이블의 논리적 구조, 즉 선형 구조를 결정합니다.

컴퓨터에 있는 이러한 학생 기록의 저장 표현은 저장 구조입니다. 이러한 레코드를 저장하기 위해 연속적인 저장 단위(예: 배열)를 사용하는 경우 이를 순차 저장 구조라고 하며, 저장 단위가 연속적이지 않지만 각 레코드가 무작위로 저장되어 포인터로 연결되는 경우를 순차 저장 구조라고 합니다. 체인 저장구조..

즉, 동일한 논리적 구조가 다른 저장 구조에 대응될 수 있습니다.

삼. 논리적 구조의 네 가지 기본 관계를 간략하게 설명 하고 해당 관계 다이어그램을 그립니다.

답변:

(1) 세트 구조

데이터 요소 간에는 "동일한 컬렉션에 속함"이라는 관계 외에는 다른 관계가 없습니다. 예를 들어, 학생이 클래스의 구성원인지 확인하려면 클래스를 컬렉션 구조로 처리하면 됩니다.

(2) 선형 구조

데이터 요소 간에는 일대일 관계가 있습니다. 예를 들어, 학생 정보 데이터를 등록 시간에 따라 배열하면 선형 구조를 형성하게 됩니다.

(3) 트리 구조

데이터 요소 간에는 일대다 관계가 있습니다. 예를 들어 학급 관리 시스템에서는 분대장이 여러 그룹장을 관리하고, 각 그룹장이 여러 그룹 구성원을 관리하여 트리 구조를 형성합니다.

(4) 그래프 구조 또는 메쉬 구조

데이터 요소 간에는 다대다 관계가 있습니다. 예를 들어, 여러 동급생 간의 우정 관계에서는 어떤 두 명의 동급생이라도 친구가 될 수 있어 그래프 구조 또는 네트워크 구조를 형성합니다.

트리 구조와 그래프 구조는 모두 비선형 구조입니다.

4. 저장소 구조를 구현하는 데 사용되는 두 가지 기본 저장소 방법은 무엇입니까?

답변:

(1) 순차 저장 구조

순차 저장 구조는 메모리에 있는 요소의 상대적 위치를 사용하여 일반적으로 프로그래밍 언어의 배열 유형으로 설명되는 데이터 요소 간의 논리적 관계를 나타냅니다.

(2) 체인 저장 구조

순차적 저장 구조는 모든 요소를 ​​연속적인 저장 공간에 순차적으로 저장해야 하는 반면, 체인 저장 구조는 전체 저장 공간을 차지할 필요가 없습니다. 그러나 노드 간의 관계를 표현하기 위해서는 각 노드에 후속 요소의 저장 주소를 저장하는 포인터 필드가 첨부되어야 합니다. 따라서 연결된 저장 구조는 일반적으로 프로그래밍 언어의 포인터 유형을 사용하여 설명됩니다.

5. 객관식 질문

(1) 데이터 구조에 있어서, 데이터 구조는 논리적으로 ( )로 나눌 수 있다.

A. _ 동적 구조와 정적 구조 나. 컴팩트하고 컴팩트하지 않은 구조

씨. 선형 구조와 비선형 구조 D. 내부구조와 외부구조

답: C

(2) 데이터는 데이터 요소 자체의 형태, 내용, 상대적 위치, 개수와는 아무런 관련이 없습니다( ).

A. _ 저장구조 나. 스토리지 구현

씨. _ 논리적 구조 D. 운영 구현

답: C

(3) 동일한 논리 구조 내의 모든 데이터 요소는 일반적으로 동일한 특성을 갖도록 요구되며, 이는 ( )를 의미한다.

   A. _ 데이터의 특성이 동일함

비. 데이터 요소에 포함된 데이터 항목의 개수가 동일해야 할 뿐만 아니라, 해당 데이터 항목의 유형도 일관되어야 합니다.

씨. _ 모든 데이터 요소는 동일합니다.

디. _ 데이터 요소에 포함된 데이터 항목의 수는 동일해야 합니다.

답: ㄴ

(4) 다음의 설명은 정확합니다 ( ).

A. _ 데이터 요소는 데이터의 가장 작은 단위입니다.

비. _ 데이터 항목은 데이터의 기본 단위입니다.

C. _ 데이터 구조는 구조를 가진 데이터 항목의 모음입니다.

디. 매우 다른 것처럼 보이는 일부 데이터는 동일한 논리적 구조를 가질 수 있습니다.

답: D

설명: 데이터 요소는 데이터의 기본 단위이고, 데이터 항목은 데이터의 가장 작은 단위이며, 데이터 구조는 구조를 가진 데이터 요소의 모음입니다.

(5) 알고리즘의 시간 복잡도는 ( )에 따라 달라집니다.

ㅏ. 문제의 크기B. 처리할 데이터의 초기 상태

씨. 컴퓨터 구성 라. A와 B

답: D

설명: 알고리즘의 시간 복잡도는 문제의 크기뿐만 아니라 문제의 다른 요소와도 관련이 있습니다. 예를 들어 일부 정렬 알고리즘의 실행 시간은 정렬할 레코드의 초기 상태와 관련이 있습니다. 이러한 이유로 알고리즘은 때때로 최고, 최악, 평균 시간 복잡도로 평가됩니다.

(6) 다음 자료구조 중 ( )는 비선형 자료구조이다.

ㅏ. 나무 ㄴ. 문자열 C. 대기열 D. 스택

답: A

6. 아래에서 각 프로그램 세그먼트의 시간 복잡도를 분석해 보세요 .

(1)x=90; y=100; 

동안(y>0)

만약(x>100)

 {x=x-10;y--;}

그렇지 않으면 x++;

답: O ( 1 )

설명: 프로그램 실행 횟수는 일정한 순서입니다.

(2) (i=0; i<n; i++)

for (j=0; j<m; j++)

a[i][j]=0;

답: O ( m*n )

설명: 명령문 a [i][j]=0 의 실행 횟수는 m*n 입니다 .

(3)s=0;

     i=0인 경우; 나는<n; 나++)

for(j=0; j<n; j++)

         s+=B[i][j];

합계=s;

:O ( n2 )

설명: 명령문 s+=B[i][j] ; 의 실행 횟수는 n 2 입니다 .

(4)i=1;

     동안(i<=n)

        나는=i*3;

답: O ( log 3 n ) 

설명: i=i*3 명령문 의 실행 횟수는 ë log 3 n û 입니다 . 

(5)x=0;

for(i=1; i<n; i++)

   for (j=1; j<=ni; j++)

x++;

:O ( n2 )

설명: 명령문 x++의 실행 횟수는 n-1+n-2+ ...+1= n(n-1)/2입니다.

Guess you like

Origin blog.csdn.net/shaozheng0503/article/details/133045702