您的位置: 网站首页 > 程序开发 > 数据结构 > 第1章 绪论 > 【1.6 本 章 小 结】

1.6 本 章 小 结

 

1.6 

本章主要介绍了贯穿全书的基本概念和基本思想。数据是能够由计算机接受和处理的对象。数据结构主要描述数据中各种元素间的相互关系,往往是给出了有关这些元素的一组运算。数据结构包括数据的逻辑结构和物理结构。数据的逻辑结构指数据元素之间的逻辑关系,数据的物理结构指数据元素在计算机存储器中的表示和安排。

算法指的是有穷的规则序列,这些规则决定了解决某一问题的一系列运算。而评价一个算法主要是研究算法的时间复杂度和空间复杂度。

通过学习本章的知识,首先要对数据结构在程序设计中的重要作用有一个充分全面的认识,并需掌握数据结构的基本概念,了解数据结构的分类及算法的设计、描述方法。其次,对算法的概念及评价方法要有所了解。

1.7     

1选择题

1)要求同一逻辑结构的所有数据元素具有相同特性,这意味着     

A.数据元素具有同一个特点

B.不仅数据元素包含的数据项个数要相同,而且对应数据项的类型要一致

C.每个数据元素都是一个样式

D.数据元素所包含的数据项的个数要相等

2数据结构是一门研究非数值计算的程序设计问题中计算机的      和运算的学科。

A.操作对象                                    B.计算方法

C.逻辑存储                                    D.数据映像

3)数据结构被形式地定义为(D, R),其中D      的有限集合。

A.算法                                           B.数据元素

C.数据操作                                    D.逻辑结构

4)在数据结构中,从逻辑上可以把数据结构分为     

A.动态结构和静态结构

B.紧凑结构和非紧凑结构

C.线性结构和非线性结构

D.内部结构和外部结构

5)线性表的顺序存储结构是一种      的存储结构。

A.随机存取                                    B.顺序存取

C.索引存取                                    D.散列存取

6)算法分析的目的是     

A.找出数据结构图的合理性

B.研究算法中输入和输出的关系

C.分析算法的效率以求改进

D.分析算法的易懂性和文档性

7)计算机算法指的是解决某一问题的有限运算序列,它必须具备输入、输出和     

5个特征。

A.可行性、可移植性和可扩充性

B.可行性、确定性和有穷性

C.确定性、有穷性和稳定性

D.易读性、稳定性和安全性

8)线性表若采用链表存储结构,要求内存中可用存储单元的地址     

A.必须是连续的                             B.部分必须是连续的

C.一定是不连续的                          D.连续不连续都可以

9)在以下的叙述中,正确的是     

A.线性表的线性存储结构优于链式存储结构

B.二维数组是每个数据元素为一个线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出

10)根据数据元素之间关系的不同特性,以下4类基本的逻辑结构反映了4类基本的数据组织形式,其中解释错误的是     

A.集合中任何两个节点之间都有逻辑关系但组织形式松散

B.线性结构中节点按逻辑关系依次排列形成一条“锁链”

C.树形结构具有分支、层次特性,其形态有点像自然界中的树

D.图状结构中的各个节点按逻辑关系互相缠绕,任何两个节点都可以邻接

11)以下说法正确的是     

A.数据元素是数据的最小单位

B.数据项是数据的基本单位

C.数据结构是带有结构的各数据项的集合

D.数据结构是带有结构的数据元素的集合

2填空题

1)数据逻辑结构包括3种类型                    ,树形结构和图形结构合称为      

2)在线性结构中,第一个节点       前驱节点,其余每个节点有且只有       个前驱节点;最后一个节点       后续节点,其余每个节点有且只有      个后续节点。

3)在树形结构中,树根节点没有       节点,其余每个节点有且只有       个前驱节点;叶子节点没有       节点,其余每个节点的后续可以      

4)在图形结构中,每个节点的前驱节点数和后续节点数可以      

5)线性结构中元素之间存在       关系,树形结构中元素之间存在       关系,图形结构中元素之间存在       关系。

6)算法的5个重要特性是                                  

7)算法分析的目的是        

8)称算法的时间复杂度为O(f (n)),其含义是指算法的执行时间和      的数量级相同。

1-2  逻辑结构图

 

3问答题

1)叙述数据结构包含的3个方面,并举例说明。

2)什么是算法(Algorithms)?

3)设有如图1-2所示的逻辑结构图,给出它的数据结构定义,并说明是什么类型的数据结构。

4)以下有几种用二元组表示的数据结构,画出它们分别对应的图形表示,并指出它们分别属于何种结构。

  A=(K,R),其中

     K={a,b,c,d,e}

     R={r}

     r={<a,b>,<b,c>,<c,d>,<d,e>}

   B=(K,R),其中

     K={a,b,c,d,e}

     R={r}

     r={<a,b>,<a,c>,<b,d>,<c,e>}

   C=(K,R),其中

     K={a,b,c,d,e}

     R={r}

r={(a,b),(a,c),(b,d),(c,e)}

4上机操作题

1)用C语言描述算法:对于输入的任意3个整数,将它们按从小到大的顺序输出。

2C语言描述算法:对于输入的任意n个整数,输出其中的最大元素和最小元素。

3)设n为正整数,给出下列各种算法关于n的时间复杂度。

void fun1(int n)

{

     i=1,k=100;

     while (i<n)

      {

       k=k+1;i+=2;

      }

}

void fun2(int b[],int n)

{

     int i,j,k,x;

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

       {

        k=i;

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

            if (b[k]>b[j]) k=j;

            x=b[i];

            b[i]=b[k];

            b[k]=x;

       }

}

void fun3(int n)

{

     int i=0,s=0;

     while (s<n)

     { 

        i++;

        s=s+i;

       }

}

4)计算出下列程序段中x=x+1语句的执行次数。

int i;

for(i=1;i<=100;i+=2)

x=x+1;

int i=1;

while(++i<=100)

x=x+1;

int i=1;

do

{

   x=x+1;

}

while(x++<=100);