c语言中指针判断回文headtail,数据结构(C语言版)程海英-习题答案.doc

第1章 习 题

1. 解释下列术语:数据、数据元素、数据对象、数据结构、存储结构、线性结构、算法、抽象数据类型。

略。

2. 试举一个数据结构的例子,叙述其逻辑结构、存储结构及运算3方面的内容。

当你拿起一本厚厚的汉语字典查找某一个汉字时,你首先必须知道你使用的字典的编码方法,然后才能按照偏傍部首、四角号码或者拼音等相应的编码方法较快地查到你所需要查找的汉字。

3. 选择题

1)在数据结构中,从逻辑上可以把数据结构分成( )。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构

C.线性结构和非线性结构 D.内部结构和外部结构

2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。

A.存储结构 B.存储实现

C.逻辑结构 D.运算实现

3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。

A.数据具有同一特点

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

C.每个数据元素都一样

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

4)以下说法正确的是( )。

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

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

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

D.一些表面上很不相同的数据可以有相同的逻辑结构

5)以下数据结构中,( )是非线性数据结构

A.树 B.字符串 C.队 D.栈

4. 填空题

1)数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 及它们之间的 关系 和运算等的学科。

2)数据结构被形式定义为(D, R),其中D是 数据元素 的有限集合,R是D上的 关系 有限集合。

3)数据结构包括数据的 逻辑结构、数据的 存储结构 和数据的 运算 这三个方面的内容。

4)线性结构中元素之间存在 一对一 关系,树形结构中元素之间存在 一对多 关系,图形结构中元素之间存在 多对多 关系。

5)一个算法的效率可分为 时间 效率和 空间 效率。

5. 试分析下面各算法的时间复杂度。

1)x=90; y=100;?

while(y>0)

if(x>100)

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

else x++;

O(1)

2)for (i=0; i

for (j=0; j

a[i][j]=0;

O(m*n)

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

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

s++;

O(n2)

i=1;

while(i<=n)

i=i*2;

O(log2n)

i=0,s1=0,s2=0;

while(i++

if(i%2)s1+=i;

else s2+=i;

}

O(n)

x=n; //n>1

y=0;

while(x>=(y+1)* (y+1))

y++;

O()

第2章 习 题

1. 线性表有两种存储结构,分别是顺序表和链表。试问:两种存储结构各有哪些主要优缺点?

① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。

优点:存储密度大,存储空间利用率高。缺点:插入或删除元素时不方便。

②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(<1),存储空间利用率低。

顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。

若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;

若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。

线性表是有限元素(a0,a1, ...,an-1)的有序序列,该线性表的第一个元素是a0,第二个元素是a1,... an-1,称ai-1是 ai的直接前驱元素,ai+1是ai的直接后继元素。每个元素只有一个直接前驱,仅有一个直接后继元素。例如,有一组实验数据(41,21,34, 53, 62,71,75,81,76,45),它是一个线性表,它们之间有着一定的顺序。这个线性表有10个元素,即表长为10,元素34的直接前驱元素是21,而直接后继元素是53。

A.查找 B.表尾插入或删除

C.按值插入或删除 D.表头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值