您的位置: 网站首页 > 程序开发 > 数据结构 > 附录 习题答案 > 【第1章 绪 论】

第1章 绪 论

 

1选择题

BCCCA  CCDBA  D

2填空题

1)线性结构,树形结构,图形结构,非线性结构

2)没有,1,没有,1

3)前驱,1,后续,任意多个

4)任意多个

5)一对一,一对多,多对多

6)有穷性,确定性,可行性,输入,输出

7)评价算法的效率

8f(n)

3问答题

1)略。

2)略。

A-1  3种数据结构的表示

 

3)其逻辑结构如下:

B=(K,R)

K={a,b,c,d,e,f,g,h,i}

R={<a,b>,<a,c>,<c,d>,<c,e>,<d,f>,<d,g>,<e,h>,<f,i>}

它是树形结构。

4)几种用二元组表示的数据结构,图形与结构如下:

如图A-1a)所示,它是线性结构。

如图A-1b)所示,它是树形结构。

如图A-1c)所示,它是图形结构。

4上机操作题

1)对应的算法如下:

void order(int a,int b,int c)

{

    if(a>b)

    {

        if(b>c)

             printf("%d,%d,%d\n",c,b,a);

         else if(a>c)

             printf("%d,%d,%d\n",b,c,a);

         else

             printf("%d,%d,%d\n",b,a,c);

     }

     else

     {

        if(b>c)

         {

            if(a>c)

                  printf("%d,%d,%d\n",c,a,b);

             else

                  printf("%d,%d,%d\n",a,c,b);

         }

         else

             printf("%d,%d,%d\n",a,b,c);

     }

}

2)对应的算法如下:

void maxmin(int A[],int n,int &max,int &min)

{

int i;

     max=min=A[0];

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

    {

        if(A[i]>max)

             max=A[i];

         if(A[i]<min)

             min=A[i];

     }

}

3)各种算法关于n的时间复杂度如下:

while循环执行m次,则i=1+2mnm(n-1)/2,算法的时间复杂度为m,即O(n)

T(n)= ==O(n2)

while循环执行m次,则s=1+2++m=m(1+m)/2n,算法的时间复杂度为m,即O()

4)各程序段中x=x+1语句的执行次数如下:

50次(i=135、…、99)。

99次(i=234、…、100)。

101次(i=123、…100101)。