数据结构练习3答案..

数据结构练习3答案..
数据结构练习3答案..

数据结构练习(三)参考

一、选择题

1.顺序查找法适合于存储结构为的线性表

A)哈希存储

C)压缩存储D)索引存储

2.一个长度为100的已排好序的表,用二分查找法进行查找,若查找不成功,至少比较________次。

A)9 B)8 C)7

3.采用顺序查找方法查找长度为n的线性表时,平均比较次数为。

A)n B)n/2 n+1)/2 D)(n-1)/2

4.对线性表进行折半查找时,要求线性表必须。

A)以顺序方式存储

C)以链表方式存储D)以链表方式存储,且结点按关键字有序排列

5.采用二分查找法查找长度为n的线性表时,每个元素的平均查找长度为。

A)O(n2)B)O(nlog2n)C)O(n)(log2n)6.有一个长度为12的有序表R[0…11],按折半查找法对该表进行查找,在表内各元素等概率查找情况下查找成功所需的平均比较次数为。

A)35/12 C)39/12 D)43/12

7.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},当采用折半查找法查找关键字为82的元素时,次比较后查找成功。

A)1 B.2 D)8

8.当采用分块查找时,数据的组织方式为。

A)数据分成若干块,每块内存数据有序

每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块

C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块

D)数据分成若干块,每块(出最后一块外)中的数据个数需相同

9.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,

假设采用顺序查找来确定结点所在的块时,每块应有个结点最佳。

A)10 C)6 D)625

10.不能生成右图所示二叉排序树的关键字序列是_____。

B)42531 C)45213 D)42315

11.按____遍历二叉排序树,可以得到按值递增或递减次序的关键码序列。

A)先序C)后序D)层序

12.在一棵平衡二叉树中,每个结点的平衡因子的取值范围是。

—1 B)-2—2 C)1—2 D)0—1

13.具有5层结点的A VL树至少有个结点

A)10 C)15 D)17

14.在含有15个结点的平衡二叉树上,查找关键字为28的结点,则依次比较的关键字可能是。

A)30,36 B)38,48,28

,18,38,28D)60,30,50,40,38,36

15.一棵深度为k的平衡二叉树,其每个非叶子结点的平衡因子均为0,则该树共有个结点。

A)2k-1-1 B)2k-1 C)2k-1 +1k-1

16.查找效率最高的二叉排序树是。

A.所有结点的左子树都为空的二叉排序树

B.所有节点的右子树都为空的二叉排序树

D.没有左子树的二叉排序树

17.下面关于B-树和B+树的叙述中,不正确的结论是。

树和B+树都能有效地支持顺序查找

B)B-树和B+树都能有效地支持随机查找

C)B-树和B+树都是平衡的多分支树

D)B-树和B+树都可用于文件索引结构

18.设有n个关键字,哈希查找法的平均查找长度是。

(1)B)O(n)C)O(log2n)D)O(n2)

19.将10个元素散列到100000个单元的哈希表,则产生冲突。

A)一定会B)一定不会D)以上都不对

20.设哈希表长m=14,哈希函数H(key)=key Mod 11.表中已有4个结点H (15)=4,H(38)=5,H(61)=6,H(84)=7,其余地址为空,如用二次探测再散列法处理冲突,则关键字为49的结点的地址是。

A)8 B)3 C)5

21.假设有k个关键字互为同义词,若用线性探测再散列法把这k个关键字存入哈希表中,至少要进行次探查。

A)k-1 B)k C)k+1 (k+1)/2

22.若采用链地执法构造哈希表,哈希函数为H(key)=key Mod 17,则需(1)个链表,这些链表的首指针构成一个指针数组,该数组的下标范围为(2)。

(1B)13 C)16 D)任意

(2)A)0—17 B)1—17 —16 D)1—16

23.直接插入排序在最好情况下的时间复杂度为。

(n)B)O(nlog2n)C)O(log2n)D)O(n2)24.稳定的排序算法是。

B)直接选择排序C)堆排序D)快速排序

25.数据序列{8,9,10,4,5,6,20,1,2}只能是算法的两趟排序后的结果。

A)直接选择排序B)冒泡排序D)堆排序

26.对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{9,15,7,8,20,-1,4},则采用的是算法。

A)直接选择排序B)冒泡排序D)堆排序

27.以下排序方法中,在初始序列已基本有序的情况下,排序效率最高。

A)归并排序C)快速排序D)堆排序

28.不稳定的排序方法是。

A)冒泡排序B)直接插入排序 D)归并排序

29.以下排序算法中,不能保证每趟排序至少能将一个元素放到其最终位置上。

A)快速排序C)堆排序D)冒泡排序

30.在以下排序方法中,关键字比较的次数与记录的初始排列次序无关的是。

A)希尔排序B)冒泡排序C)插入排序

31.在排序算法中,每次从未排序的记录中选取最小(或最大)关键字的记录,加入到已排序记录的末尾,该排序方法是。

A)希尔排序B)冒泡排序C)插入排序

32.采用直接选择排列,比较次数与移动次数分别是。

A)O(n),O(log2n)B)O(log2n),O(n2)

(n2),O(n)D)O(n log2n),O(n)

33.以下序列不是堆的是。

A){100,85,98,77,80,60,82,40,20,10,66}

B){100,98,85,82,80,77,66,60,40,20,10}

C){10,20,40,60,66,77,80,82,85,98,100}

,85,40,77,80,60,66,98,82,10,20}

34.堆排序是(1)类排序,堆排序平均时间复杂度和需要附加的存储空间复杂度分别是(2)。

(1).A)插入B)交换C)归并

(2).A)O(n2)和O(1)(nlog2n)和O(1)C)O(nlog2n)和O(n) D)O(n2)和O(n)

35.对n个记录的文件进行堆排序,最坏情况下的执行时间是。

A)O(log2n)B)(n)(nlog2n)D)O(n2)

36.设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用排序法。

A)冒泡排序B)快速排序D)基数排序

37.在非空m阶B-树上,除根结点以外的所有其他非终端结点。

A)至少有??2/m棵子树B)至多有??2/m棵子树

??2/m棵子树 C)至少有??2/m棵子树

38.对于哈希函数H(key)=key%13,被称为同义词的关键字是________。

A)35和41 B)23和39 C)15和44 和51 39.堆的形状是一棵________。

A)二叉排序树B)满二叉树D)不是二叉树

40.以下法在数据基本有序时效率最好。

A)快速排序C)堆排序D)希尔排序

41.快速排序在情况下最不利于发挥其长处。

A)要排序的数据量太大B)要排序的数据中含有多个相同值

C)要排序的数据个数为奇数

42.下列序列中,__是执行第一趟快速排序后得到的序列(关键字为字符串)

B. [cd,eb,ax,da]ff[ha,gc,bb]

C. [gc,ax,eb,cd,bb]ff[da,ha]

D. [ax,bb,cd,da]ff[eb,gc,ha]

43.一个记录的关键字为{46,79,56,38,40,84},采用快速排序以第一个记录为基准得到的第一次划分结果为________。

A){38,40,46,56,38,79,84} B){40,38,46,79,56,84}

D){40,38,46,56,79}

44.对下列关键字序列用快速排序法进行排序时,速度最快的情形是____。A){21,25,5,17,9,23,30} B){25,23,30,17,21,5,9}

D){5,9,17,21,23,25,30}

45.下列排序方法中,在一趟结束后不一定能选出一个元素放在其最终位置上。

A)直接选择排序B)冒泡排序D)堆排序

46.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。

B)2n-1 C)2n D)n-1

二、填空题:

1.在n个记录的有序顺序表中进行折半查找,最大的比较次数是?log2n ?+1 。

2.设线性表{a1,,,a2,,…,a500}的元素的值从小到大排列,对一个给定的K的值用二分法查找线性表,在查找不成功的情况下至多需要比较?log2n ?+1 次

3.在直接插入排序、希尔排序、直接选择排序、快速排序、堆排序和归并排序中,平均比较次数最少的排序方法是快速排序。

4.一棵深度为h的B-树,任一个叶子结点所处的层数为h ,当向B-树插入一个新关键字时,为检索插入位置需读取h-1 个结点。

5.评价哈希表好坏的标准是哈希表的均匀性。

6.在各种查找方法中,其平均查找长度与结点个数n无关的查找方法是哈希表查找。

7.设用希尔排序对数序{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的不长(也称增量序列)依次是4、2、1,则排序需 3 趟,写出第一趟结束后,数序中数据的排列次序是10,7,-9,0,47,23,1,8,98,36 。

三、判断题

2.顺序查找方法只能在顺序存储结构上进行

3.折半查找可以在有序的双向链表上进行

每个结点的关键字都比左孩子关键字大,比右孩子关键字小

6.每个结点的关键字都比左孩子关键字大,比右孩子关键字小,这样的二叉树都是二叉排序树

7.在二叉排序树中,新插入的关键字总是处于最低层

10.在平衡二叉排序树中,每个结点的平衡因子值都是相等的

哈希存储法只能存储数据元素的值,不能存储数据元素之间的关系。

13.哈希冲突是指同一个关键字对应多个不同的哈希地址。

14.哈希查找过程中,关键字的比较次数和哈希表中关键字的个数直接相关。

15.在用线性探测法处理冲突的哈希表中,哈希函数值相同的关键字总是存在一片连续的存储单元中。

16.若哈希表的装填因子a<<1,则可避免冲突的发生。

哈希表的查找效率主要取决于哈希表造表时选取的哈希函数和处理冲突的方法。

四、简答题:

1.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度;

(1)查找不成功,即表中无关键字等于给定值k的记录

(2)查找成功,即表中有关键字等于给定值k的记录

2.已知一个有序表为{12,18,20,25,29,32,40,62,83,90,95,98},当折半查找值29和90的元素时,分别需要多少次比较才能查找成功?若采用顺序查找时(从前往后找),分别需要多少次比较才能成功?4,4,5,10

3.比较静态查找表的3种查找方法

4.请回答下列关于堆的问题

(1

(2)设有一个最小堆(小根堆),即堆中任意结点的关键字均小于它的左孩子Array

和右孩子的关键字。其具有最大关键字的元素可能在什么地方?

5.指出堆和二叉排序树的区别。

6.二叉排序树的结构如图所示,其中各结点的关键

7.关键字序列为:{1,2,6,7,11,4,8,13,10,

5,17,9,16,20,3,12,14,16,18,19,15},

创建一棵5阶B-树,对于该B-树,给出删除8,16,

15,4等4个关键字的过程。

8.已知一组关键字为{21,33,12,40,68,59,25,

51},试依次插入关键字生成一棵3阶B-树;如果

此后删除40,画出每一步执行后B-树的状态。

9.已知哈希函数H(k)=2*k Mod 11,用二次探测再散列法处理冲突,为关键字序列(6,8,10,17,20,23,53,41,54,57)构造哈希表,并计算查找成功、不成功时的平均查找长度。

10.比较直接插入排序和希尔排序的不同点。

个元素

11.在实现插入排序过程中,可以用折半查找来确定第i个元素在前i-1

12.在堆排序、快速排序和归并排序中:

(1)若只从存储空间考虑,则应首先选取哪种排序方法,其次选取哪种排序方法,最后选取哪种排序方法?堆排序、快速排序、归并排序

(2)若只从排序结果的稳定性考虑,则应选取哪种排序方法?归并排序

(3)若只从平均情况下排序最快考虑,则应选取哪种排序方法?快速排序

(4)若只从最坏情况下排序最快并且要节省内存考虑,则应选取哪种排序方法?堆排序

13.判别以下序列是否是大顶堆,如果不是,则把它调整为大顶堆。 86,48,73,35,39,42,57,66,21,100

不是

14.已知哈希表地址空间为0到7,哈希函数为H(k)=k %8,采用线性探测再散列法和链地址法处理冲突,将以下各数依次存入该哈希表中,请分别构造哈希表,并分别计算平均查找长度。

240,29,345,189,100,20,21,35

ASL=(1+1+1+2+1+4+6+1)/8=17/8

ASL=(1+1+1+1+2+1+2+3)/8=12/8=0.75

15.请为17题数列构造一棵平衡的二叉排序树,并计算ASL 。

ASL=(1+2*2+4*3+5*3)/10=32/10=3.2

16.有n 个有序的数据构成一个数列,查找某个元素时最多要进行几次比较?当n=12,在等概率情况下查找成功的平均查找长度是多少?

[log 2n]+1

ASL=(1+2*2+4*3+5*4)/12=37/12

17.对如下数据:43,12,50,31,71,35,24,62,11,20

(1)写出采用快速排序算法的每一趟排序的结果

(2)写出执行直接插入排序算法,每趟排序的结果

(3)写出执行希尔排序算法,每趟排序的结果(增量序列为5、3、1)

(4)写出执行选择排序算法,每趟排序的结果

(1) 43,12,50,31,71,35,24,62,11,20

{20 12 11 31 24 35} 42 {62 71 50}

{11 12} 20 {31 24 35} 42 {62 71 50}

11 12 20 24 31 35 42 {62 71 50}

11 12 20 24 31 35 42 50 62 71 (2)43

12 43

12 43 50

12 31 43 50

12 31 43 50 71

12 31 35 43 50 71

12 24 31 35 43 50 71

12 24 31 35 43 50 62 71

11 12 24 31 35 43 50 62 71

11 12 20 24 31 35 43 50 62 71 (3)43,12,50,31,71,35,24,62,11,20

35 12 50 11 20 43 24 62 31 71

11 12 31 24 20 43 35 62 50 71

11 12 20 24 31 35 43 50 62 71 (4)43,12,50,31,71,35,24,62,11,20

11 12 50 31 71 35 24 62 43 20

11 12 50 31 71 35 24 62 43 20

11 12 20 31 71 35 24 62 43 50

11 12 20 24 71 35 31 62 43 50

11 12 20 24 31 35 71 62 43 50

11 12 20 24 31 35 71 62 43 50

11 12 20 24 31 35 43 62 71 50

11 12 20 24 31 35 43 50 71 62

11 12 20 24 31 35 43 50 62 71

五、算法设计题:

1.若线性表中各节点的查找概率不等,则可用如下策略提高顺序查找的效率,若找到指定的结点,将该结点与其前驱(若存在)结点交换,使得经常被查找的结点尽量位于表的前端。设计出满足上述策略的顺序查找算法(注意必须从表头开始向后扫描)

2.设计一个算法,递增有序输出一棵二叉排序树的所有结点的关键字。

3.设计一个算法,从大到小输出二叉排序树中所有其他值不小于k的关键字。

4.设计一个算法,求出给定二叉排序树中最小和最大的关键字。

5.给定一组关键字,创建一个带头结点的单链表,设计一个直接插入排序算法对这个单链表进行递增序列。

数据结构实验报告3--链串

宁波工程学院电信学院计算机教研室 实验报告 课程名称:___ 数据结构 ___ __ 实验项目:链串的基本算法 指导教师: 实验位置:电子楼二楼机房姓名: 学号: 班级:计科102 日期: 2011/10/13 一、实验目的 1)熟悉串的定义和串的基本操作。 2)掌握链串的基本运算。 3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。 二、实验环境 装有Visual C++6.0的计算机。 三、实验内容 编写一个程序,实现链串的各种基本运算,并在此基础上设计一个主程序。具体如下: 编写栈的基本操作函数 链串类型定义如下所示: typedef struct snode{ char data; struct snode *next; }listring; (1)串赋值Assign(s,t) 将一个字符串常量赋给串s,即生成一个其值等于t的串s (2)串复制StrCopy(s,t)

?将串t赋给串s (3)计算串长度StrLength(s) ?返回串s中字符个数 (4)判断串相等StrEqual(s,t) ?若两个串s与t相等则返回1;否则返回0。 (5)串连接Concat(s,t) ?返回由两个串s和t连接在一起形成的新串。 (6)求子串SubStr(s,i,j) ?返回串s中从第i(1≤i≤StrLength(s))个字符开始的、由连续j 个字符组成的子串。 (7)插入InsStr (s,i,t) ?将串t插入到串s的第i(1≤i≤StrLength(s)+1)个字符中,即将t 的第一个字符作为s的第i个字符,并返回产生的新串(8)串删除DelStr (s,i,j) ?从串s中删去从第i(1≤i≤StrLength(s))个字符开始的长度为j 的子串,并返回产生的新串。 (9)串替换RepStr (s,s1,s2) ?在串s中,将所有出现的子串s1均替换成s2。 (10)输出串DispStr(s) ?输出串s的所有元素值 (11)判断串是否为空IsEmpty(s) 编写主函数 调用上述函数实现下列操作: (1)建立串s=“abcdefghijklmn”,串s1=“xyz”,串t=“hijk” (2)复制串t到t1,并输出t1的长度 (3)在串s的第9个字符位置插入串s1而产生串s2,并输出s2 (4)删除s第2个字符开始的5个字符而产生串s3,并输出s3 (5)将串s第2个字符开始的3个字符替换成串s1而产生串s4,并输出s4 (6)提取串s的第8个字符开始的4个字符而产生串s5,并输出s5 (7)将串s1和串t连接起来而产生串s6,并输出s6 (8)比较串s1和s5是否相等,输出结果 程序清单: #include

数据结构练习3答案..

数据结构练习(三)参考 一、选择题 1.顺序查找法适合于存储结构为的线性表 A)哈希存储 C)压缩存储D)索引存储 2.一个长度为100的已排好序的表,用二分查找法进行查找,若查找不成功,至少比较________次。 A)9 B)8 C)7 3.采用顺序查找方法查找长度为n的线性表时,平均比较次数为。 A)n B)n/2 n+1)/2 D)(n-1)/2 4.对线性表进行折半查找时,要求线性表必须。 A)以顺序方式存储 C)以链表方式存储D)以链表方式存储,且结点按关键字有序排列 5.采用二分查找法查找长度为n的线性表时,每个元素的平均查找长度为。 A)O(n2)B)O(nlog2n)C)O(n)(log2n)6.有一个长度为12的有序表R[0…11],按折半查找法对该表进行查找,在表内各元素等概率查找情况下查找成功所需的平均比较次数为。 A)35/12 C)39/12 D)43/12 7.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},当采用折半查找法查找关键字为82的元素时,次比较后查找成功。 A)1 B.2 D)8 8.当采用分块查找时,数据的组织方式为。 A)数据分成若干块,每块内存数据有序 每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D)数据分成若干块,每块(出最后一块外)中的数据个数需相同 9.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,

假设采用顺序查找来确定结点所在的块时,每块应有个结点最佳。 A)10 C)6 D)625 10.不能生成右图所示二叉排序树的关键字序列是_____。 B)42531 C)45213 D)42315 11.按____遍历二叉排序树,可以得到按值递增或递减次序的关键码序列。 A)先序C)后序D)层序 12.在一棵平衡二叉树中,每个结点的平衡因子的取值范围是。 —1 B)-2—2 C)1—2 D)0—1 13.具有5层结点的A VL树至少有个结点 A)10 C)15 D)17 14.在含有15个结点的平衡二叉树上,查找关键字为28的结点,则依次比较的关键字可能是。 A)30,36 B)38,48,28 ,18,38,28D)60,30,50,40,38,36 15.一棵深度为k的平衡二叉树,其每个非叶子结点的平衡因子均为0,则该树共有个结点。 A)2k-1-1 B)2k-1 C)2k-1 +1k-1 16.查找效率最高的二叉排序树是。 A.所有结点的左子树都为空的二叉排序树 B.所有节点的右子树都为空的二叉排序树 D.没有左子树的二叉排序树 17.下面关于B-树和B+树的叙述中,不正确的结论是。 树和B+树都能有效地支持顺序查找 B)B-树和B+树都能有效地支持随机查找 C)B-树和B+树都是平衡的多分支树 D)B-树和B+树都可用于文件索引结构 18.设有n个关键字,哈希查找法的平均查找长度是。 (1)B)O(n)C)O(log2n)D)O(n2) 19.将10个元素散列到100000个单元的哈希表,则产生冲突。 A)一定会B)一定不会D)以上都不对

数据结构-第六章-图-练习题及答案详细解析(精华版)

图 1. 填空题 ⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵ 任何连通图的连通分量只有一个,即是()。 【解答】其自身 ⑶ 图的存储结构主要有两种,分别是()和()。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。 【解答】求第j列的所有元素之和 ⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。 【解答】出度

⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。 【解答】前序,栈,层序,队列 ⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。 【解答】O(n2),O(elog2e) 【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。 【解答】vi, vj, vk 【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。 2. 选择题 ⑴ 在一个无向图中,所有顶点的度数之和等于所有边数的()倍。 A 1/2 B 1 C 2 D 4 【解答】C 【分析】设无向图中含有n个顶点e条边,则。

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (1)一个算法应该就是()。 A)程序???B)问题求解步骤得描述 C)要满足五个基本属性??D) A与C (2)算法指得就是()。 A)计算机程序???B)解决问题得计算方法 C)排序算法???D)解决问题得有限运算序列。 (3)与数据元素本身得形式、内容、相对位置、个数无关得就是数据得()。 A) 存储结构B) 逻辑结构C)算法D)操作 (4)从逻辑上可以把数据结构分为( )两大类。 A)动态结构、静态结构??B) 顺序结构、链式结构 C)线性结构、非线性结构???D)初等结构、构造型结构 (5)下列叙述中正确得就是()。 A)一个逻辑数据结构只能有一种存储结构 B)数据得逻辑结构属于线性结构,存储结构属于非线性结构 C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理得效率 D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理得效率 (6)数据得基本单位就是() ?A) 数据项??B) 数据类型C)数据元素??D)数据变量 (7)下列程序得时间复杂度为() i=0;s=0; while(s

数据结构练习试题和答案解析

第1章绪论 一、判断题 1.数据的逻辑结构与数据元素本身的容和形式无关。(√) 2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。(√) 3.数据元素是数据的最小单位。(×) 4.数据的逻辑结构和数据的存储结构是相同的。(×) 5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。(×) 6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。(√) 7.数据的存储结构是数据的逻辑结构的存储映象。(√) 8.数据的物理结构是指数据在计算机实际的存储形式。(√) 9.数据的逻辑结构是依赖于计算机的。(×) 10.算法是对解题方法和步骤的描述。(√) 二、填空题 1.数据有逻辑结构和存储结构两种结构。 2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。 3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。 4.树形结构和图形结构合称为非线性结构。 5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点。 6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。 7.数据的存储结构又叫物理结构。 8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。 9.线性结构中的元素之间存在一对一的关系。 10.树形结构中的元素之间存在一对多的关系。 11.图形结构的元素之间存在多对多的关系。 12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)3个方面的容。 13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系有限集合。 14.算法是一个有穷指令的集合。 15.算法效率的度量可以分为事先估算法和事后统计法。 16.一个算法的时间复杂度是算法输入规模的函数。 17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模的n的函数。 18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O(nlog2n)。 19.若一个算法的语句频度之和为T(n)=3n+nlog2+n2,则算法的时间复杂度为O(n2)。 20.数据结构是一门研究非数值计算的程序问题中计算机的操作对象,以及它们之间的关系和运算的学 科。 三、选择题 1.数据结构通常是研究数据的(A)及它们之间的相互关系。 A.存储结构和逻辑结构B.存储和抽象C.联系和抽象D.联系与逻辑 2.在逻辑上可以把数据结构分成(C)。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.部结构和外部结构。 3.数据在计算机存储表示时,物理地址和逻辑地址相同并且是连续的,称之为(C)。 A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构 4.非线性结构中的每个结点(D)。 A.无直接前驱结点.B.无直接后继结点.

数据结构复习题附答案

一.是非题 1. 数据结构(应该是抽象数据类型)可用三元式表示(D,S,P)。其中:D是数据对象,S是D上的关系,P是对D的基本操作集。(f) 2 简单地说,数据结构是带有结构的数据元素的集合。(t) 3 判断带头结点的非空循环单链表(头指针为L)中指针p所指结点是最后一个元素结点 的条件是:p->next==L。(t) 4 线性表的链式存储结构具有可直接存取表中任一元素的优点。(f) 5 线性表的顺序存储结构优于链式存储结构。(f) 6. 在单链表P指针所指结点之后插入S结点的操作是: P->next= S ; S-> next = P->next;。(f) (顺序弄反了S-> next = P->next; P->next= S ;) 7 对于插入、删除而言,线性表的链式存储优于顺序存储。(t) 8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。(f) 9. 栈和队列是操作上受限制的线性表。(t) 10. 队列是与线性表完全不同的一种数据结构。(f) (栈和队列是操作上受限制的线性表) 11. 队列是一种操作受限的线性表,凡对数据元素的操作仅限一端进行。(f) (两端) 12. 栈和队列也是线性表。如果需要,可对它们中的任一元素进行操作。(f) ( “如果需要,可对它们中的任一元素进行操作.” 这里的意思是在O(1)的时间来读和改某个元素。比如数组的直接索引。 栈:如果需要,每一次只能对栈顶的元素进行操作 队列:如果需要,每一次只能对两端,或者只能对队列头的元素进行操作。) 13. 栈是限定仅在表头进行插入和表尾进行删除运算的线性表。(f) 14. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。(f) (二叉树和树相互独立) 15 二叉树是一棵结点的度最大为二的树。(f) (二叉树和树相互独立) 16 赫夫曼树中结点个数一定是奇数。(t) 17 在二叉树的中序遍历序列中,任意一个结点均处在其左孩子结点的后面。(t) (LDR) 18 假设B是一棵树,B′是对应的二叉树。则B的后根遍历相当于B′的后序遍历。(f) (后根遍历相当于中序遍历) 19. 通常,二叉树的第i层上有2i-1个结点。(f) (应该为1~2i-1个) 20. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。(t) 21 二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。(t) 22 由树结点的先根序列和后根序列可以唯一地确定一棵树。(t) 23 邻接多重表可以用以表示无向图,也可用以表示有向图。(f) (只能表示无向图,有向图用十字链表) 24 可从任意有向图中得到关于所有顶点的拓扑次序。(f) (带环图没有) 25 有向图的十字链表是将邻接表和逆邻接表合二为一的链表表示形式。(t)

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。 a. 随机存储; b.顺序存储; c. 索引存取; d. HASH 存取 2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。 a. edcba; b. decba; c. dceab; d.abcde 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,1 4.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。 a. s->nxet=p->next; p->next=s; b. p->next=s->next; s->next=p; c. q->next=s; s->next=p; d. p->next=s; s->next=q; 5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。 a. 90 b.180 c.240 d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。 a. p->lch==NULL b. p->ltag==1 c. p->ltag==1且p->lch=NULL d. 以上都不对 8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______ A 、(A , B , C , D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D ) 9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。 A 、acbed B 、decab C 、deabc D 、cedba 10.设矩阵A 是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]中,对任一上三角部分元素)(j i a ij ,在一维数组B 的存放位置是 。

数据结构 第六章 图 练习题及答案详细解析

图 1. 填空题 ⑴设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵任何连通图的连通分量只有一个,即是()。 【解答】其自身 ⑶图的存储结构主要有两种,分别是()和()。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。 【解答】求第j列的所有元素之和 ⑹有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。 【解答】出度 ⑺图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。 【解答】前序,栈,层序,队列 ⑻对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。 【解答】O(n2),O(elog2e) 【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。 【解答】vi, vj, vk

数据结构试题及答案(10套最新)

单选题(每题2分,共20分) 1. 1. 对一个算法的评价,不包括如下(B )方面的内容。 A .健壮性和可读性 B .并行性 C .正确性 D .时空复杂度 2.2. 在带有头结点的单链表HL 中,要向表头插入一个由指针 p 指向 的结点,则执行(A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; 都具有相同的(A )。 A.行号 B .列号 C .元素值 D .非零元素个数 9. 快速排序在最坏情况下的时间复杂度为(D )。 A. O(log 2n) B . O(nlog 2n) C . 0(n) D 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致 为 A. O(n) B. O(1) C. O(log 2 n) D. O(n 二、 运算题(每题6分,共24分) 1. 1. 数据结构是指数据及其相互之间的 _________________ 。当结点之 间存在M 对N (M N)的联系时,称这种结构为 __________________________ 。 2. 2. 队列的插入操作是在队列的_ _尾 ________ 行,删除操作是在队 列的 ____ 首 _____ 行。 3. 3. 当用长度为N 的数组顺序存储一个栈时,假定用top==N 表示栈 C. p->next=HL; p=HL; 3. 3. A. C. D. HL=p; p-> next=HL; 对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素 B. 表中元素需要占据一片连续的存储空间 一个栈的输入序列为1 2 3, 4. 4. 列的是(C ) A. 2 3 1 C. 3 1 2 AOV 网 是一种(D ) 有向 图 B .无向图 (B ) 经常需要进行插入和删除操作 D.表中元素的个数不变 则下列序列中不可能是栈的输出序 B. 3 2 1 5. 5. 6. .无向无环图 D .有向无环图 采用 开放定址法处理散列表的冲突时,其平均查找长度( B. 高于链接法处理冲突 D .高于二分查找 7. 8. 6. A.低于链接法处理冲突 .与链接法处理冲突相同 7. 参数。 A.值 8. B)。 若需要利用形参直接访问实参时,应将形参变量说明为( B .函数 C .指针 D .引用 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点 9. .0(n 2) (C )。 2 )

数据结构_实验三_栈和队列及其应用

实验编号:3四川师大《数据结构》实验报告2016年10月29日 实验三栈与队列及其应用_ 一.实验目得及要求 (1)掌握栈与队列这两种特殊得线性表,熟悉它们得特性,在实际问题背景下灵活运用它们; (2)本实验训练得要点就是“栈”得观点及其典型用法; (3)掌握问题求解得状态表示及其递归算法,以及由递归程序到非递归程序得转化方法。 二.实验内容 (1)编程实现栈在两种存储结构中得基本操作(栈得初始化、判栈空、入栈、出栈等); (2)应用栈得基本操作,实现数制转换(任意进制); (3)编程实现队列在两种存储结构中得基本操作(队列得初始化、判队列空、入队列、出队列); (4)利用栈实现任一个表达式中得语法检查(括号得匹配)。 (5)利用栈实现表达式得求值。 注:(1)~(3)必做,(4)~(5)选做。 三.主要仪器设备及软件 (1)PC机 (2)Dev C++ ,Visual C++, VS2010等 四.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)编程实现栈在两种存储结构中得基本操作(栈得初始化、判栈空、入栈、出栈等); A、顺序储存: ?代码部分: //Main、cpp: #include"SStack、h" int main() { SqStack S; SElemType e;

int elect=1; InitStack(S); cout << "已经创建一个存放字符型得栈" << endl; while (elect) { Muse(); cin >> elect; cout << endl; switch (elect) { case 1: cout << "input data:"; cin >> e; Push(S, e); break; case 2: if(Pop(S, e)) {cout << e <<" is pop"<< endl; } else{cout<<"blank"<

数据结构练习附答案

一、单项选择题 1.逻辑关系是指数据元素间的() A.类型 B.存储方式 C.结构 D.数据项 2.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构 为( ) A.顺序表 B.用头指针表示的单循环链表 C. 用尾指针表示的单循环链表 D. 单链表 3.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear 为队尾指针,则执行出队操作后其头指针front值为() A.front=front+1 B.front= (front+1)%(m-1) C.front=(front-1)%m D.front=(fro nt+1)%m 4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别 为队头指针和队尾指针,则判断队满的条件为( )。 A.rear%n==front B.(front+l)%n==rear C.rear%n-1==front D.(rear+l)%n==front 5.在具有n个单元的顺序存储的循环队列中,假定front和rear分别 为队头指针和队尾指针,则判断队空的条件为( )。 A.rear%n==front B.front+l=rear C.rear==front D.(rear+l)%n=front 6.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。 ( ) A. 90 B. 91 C. 92 D. 93 7.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。 A. 只有右子树上的所有结点 B. 只有右子树上的部分结点 C. 只有左子树上的所有结点 D. 只有左子树上的部分结点 8.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。 A. n B. 2n C. n/2 D. n*n 9.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利 用()。 A. 求关键路径的方法 B.求最短路径的方法 C. 深度优先遍历算法 D.广度优先遍历算法 10.对线性表进行二分查找时,要求线性表必须( )。

数据结构复习题及答案(12级).

一、选择题。(每小题2分,共40分) (1) 计算机识别.存储和加工处理的对象被统称为____A____。 A.数据 B.数据元素 C.数据结构 D.数据类型 (2) 数据结构通常是研究数据的____ A _____及它们之间的联系。 A.存储和逻辑结构 B.存储和抽象 C.理想和抽象 D.理想与逻辑 (3) 不是数据的逻辑结构是____ A ______。 A.散列结构 B.线性结构 C.树结构 D.图结构 (4) 数据结构被形式地定义为,其中D是____ B _____的有限集,R是____ C _____的有限集。 A.算法 B.数据元素 C.数据操作 D.逻辑结构 (5) 组成数据的基本单位是____ A ______。 A.数据项 B.数据类型 C.数据元素 D.数据变量 (6) 设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是____ A ______。 A.线性结构 B.树型结构 C.图型结构 D.集合 (7) 数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为___ C ____。 A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构 (8) 在数据结构的讨论中把数据结构从逻辑上分为___ A ____。 A.内部结构与外部结构 B.静态结构与动态结构 C.线性结构与非线性结构 D.紧凑结构与非紧凑结构 (9) 对一个算法的评价,不包括如下____ B _____方面的内容。 A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度 (10) 算法分析的两个方面是__ A ____。 A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 (11) 线性表是具有n个___ C _____的有限序列(n≠0)。 A.表元素 B.字符 C.数据元素 D.数据项 (12) 线性表的存储结构是一种____ B ____的存储结构。 A.随机存取 B.顺序存取 C.索引存取 D.HASH存取

算法与数据结构题库与答案

一、单项选择题 1 某算法的时间复杂度是O(n 2 ) ,表明该算法()。 A 问题规模是n2 B 问题规模与n2成正比 C 执行时间等于n2 D 执行时间与n2成正比 2、关于数据结构的描述,不正确的是()。 A数据结构相同,对应的存储结构也相同。 B数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。 C数据结构操作的实现与存储结构有关。 D定义逻辑结构时可不考虑存储结构。 3、按排序策略分来,起泡排序属于()。 A插入排序B选择排序C交换排序D归并排序 4、利用双向链表作线性表的存储结构的优点是()。 A便于进行插入和删除的操作 B 提高按关系查找数据元素的速度 C节省空间D便于销毁结构释放空间 5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。 A 1,2,3,4 B 1,3,2,4 C 1,4,2,3 D 4,3,2,1 6、 Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。 A按长度递减的顺序求出图的某顶点到其余顶点的最短路径 B按长度递增的顺序求出图的某顶点到其余顶点的最短路径 C通过深度优先遍历求出图中从某顶点到其余顶点的所有路径 D通过广度优先遍历求出图的某顶点到其余顶点的最短路径 7、字符串可定义为n( n≥ 0)个字符的有限()。其中,n是字符串的长度,表明字符串中字符的个数。 A集合B数列C序列D聚合 8、在二维数组A[9][10]中,每个数组元素占用 3 个存储单元,从首地址SA 开始按行连续存放。在这种情况下,元素A[8][5]的起始地址为()。 A SA+141 B SA+144 C SA+222 D SA+255 9、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。 A2B3C4D5 10.对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。 A. n+1 B. n C. n-1 D. n-2 11.一个递归算法必须包括 __________ 。 A. 递归部分 B . 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分 12.从逻辑上看可以把数据结构分为__________两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 13、若在长度为n 的顺序表的表尾插入一个新元素的渐进时间复杂度为()。 A O(n) B O(1) C O(n 2) D O(log 2n) 14.采用顺序搜素方式搜索长度为 n 的线性表时,在等概率情况下,搜索成功时的平均搜索 长度为 __________。 A. n B. n/2 C . (n+1)/2 D. (n-1)/2 15、非空的循环单链表first的链尾结点(由p 所指向)满足()。 A p->link==NULL; B P==NULL;

数据结构实验3二叉树

一、实验目的 1.进一步掌握指针变量的含义。 2.掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。 3.掌握用指针类型描述、访问和处理二叉树的运算。 二、实验要求 1.认真阅读和掌握本实验的参考程序。 2.按照对二叉树的操作需要,在创建好二叉树后再通过遍历算法验证创建结果。3.保存程序的运行结果,并结合程序进行分析。 三、实验内容 以下参考程序是按完全二叉树思想将输入的字符串生成二叉树,并通过遍历来验证二叉树创建正确与否,但不能创建非完全二叉树,请认真研究该程序,然后模仿教材例6.4初始化方式创建二叉树:所有的空指针均用#表示,如教材图 6-13对应的二叉树,建立时的初始序列为:AB#D##CE##F##。然后通过遍历算法验证二叉树是否正确(先递归验证后非递归验证)。 参考程序略 程序代码如下: #include "stdio.h" #include "stdlib.h" typedef char Datatype; #define MAXSIZE 100 typedef struct bnode { Datatype data; struct bnode *lchild,*rchild; }BNode,*BTree; typedef struct{ BTree data[MAXSIZE]; int front,rear; }seqqueue,*Pseqqueue; typedef struct{ BNode *node; int flag; }Data; typedef struct node { Data Data[MAXSIZE]; int top; }SeqStack,*PSeqStack; PSeqStack Init(void)

数据结构练习3答案

数据结构练习(三)参考 一、选择题 1?顺序查找法适合于存储结构为________ 的线性表 A) 哈希存储| B )顺序存储或链式存储 C)压缩存储 D )索引存储 2. —个长度为100的已排好序的表,用二分查找法进行查找,若查找不成功,至 少比较__________ 。 A) 9 B)8 C)7 |D) 6 3. 采用顺序查找方法查找长度为n的线性表时,平均比较次数为_________ 。 A) n B) n/2 G 5+1)/2 D) (n-1 ) /2 4. 对线性表进行折半查找时,要求线性表必须________ 。 A )以顺序方式存储以顺序方式存储,且结点按关键字有序排列 C )以链表方式存储 D )以链表方式存储,且结点按关键字有序排列 5. 采用二分查找法查找长度为n的线性表时,每个元素的平均查找长度 为 ______ 。 A) O (n2) B) O (nlog2n) C) O (n) D) O (log2n) 6. 有一个长度为12的有序表R[0…11],按折半查找法对该表进行查找,在 表内各元素等概率查找情况下查找成功所需的平均比较次数为 _________ 。 A) 35/12 B) 37/12 C) 39/12 D) 43/12 7. 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},当采用折半查找法查找关键字为82的元素时,________ 次比较后查找成功。 A) 1 B.2 C)4 D ) 8 8. 当采用分块查找时,数据的组织方式为________ o A )数据分成若干块,每块内存数据有序 B )数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最 小)的数据组成索引块 C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块

数据结构 实验报告三

实验三的实验报告 学期: 2010 至_2011 第 2 学期 2011年 3月 27日课程名称: 数据结构专业:信息与计算科学 09 级5班实验编号: 03 实验项目:栈和队列实验指导教师 _冯山_姓名:朱群学号: 2009060548 实验成绩: 一实验目的: (1)熟练掌握栈和队列的抽象数据类型及其结构特点; (2)实现基本的栈和队列的基本操作算法程序。 二实验内容:(类C算法的程序实现,任选其一) (1) 设计与实现基本的堆栈和队列结构下的各种操作(如堆栈的PUSH、POP 等操作)(必做); (2)以表达式计算为例,完成一个可以进行算术表达式计算功能的算法设计 与实现(选做); (3)以迷宫问题为例,以堆栈结构完成迷宫问题的求解算法和程序(选做)。三实验准备: 1) 计算机设备;2)程序调试环境的准备,如TC环境;3)实验内容的算法分 析与代码设计与分析准备。 四实验步骤: 1.录入程序代码并进行调试和算法分析; 2.编写实验报告。 五实验过程 一设计与实现基本的堆栈结构下的各种操作(如堆栈的PUSH、POP等操作)(1)问题描述 实现堆栈各种基本操作,如Pop,Push,GetTop等操作,即输入数据,通过Push入栈,再通过Pop操作输出出栈的元素,即入栈a,b,c,d,出栈d,c,b,a (2)算法实现及基本思想 堆栈是后进先出的线性表,由Push输入元素,Pop输出元素,堆栈的Push 操作思想,即插入元素e为新的的栈顶元素,先判断栈满与否,追加存储空间,然后将e值赋给栈顶指针Top。输入数据时用for循环 堆栈的Pop操作思想,先判断栈是否为空,若栈不空,则删除栈的栈顶元素,用e返回其值, (3)数据结构 栈的顺序存储结构 Typedef struct {

数据结构课程课后习题答案.

《数据结构简明教程》练习题及参考 答案 练习题1 1. 单项选择题 (1)线性结构中数据元素之间是()关系。 A.一对多 B.多对多 C.多对一 D.一对一 答:D (2)数据结构中与所使用的计算机无关的是数据的()结构。 A.存储 B.物理 C.逻辑 D.物理和存储 答:C (3)算法分析的目的是()。 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 答:C (4)算法分析的两个主要方面是()。 A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 答:A (5)计算机算法指的是()。 A.计算方法 B. 排序方法 C.求解问题的有限运算序列 D.调度方法 答:C (6)计算机算法必须具备输入、输出和()等5个特性。 A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性 C.确定性、有穷性和稳定性 D.易读性、稳定性和安全性 答:B 2. 填空题 (1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。

数据结构简明教程 答:①逻辑结构 ②存储结构 ③运算 (2)数据结构按逻辑结构可分为两大类,它们分别是 ① 和 ② 。 答:①线性结构 ②非线性结构 (3)数据结构被形式地定义为(D,R ),其中D 是 ① 的有限集合,R 是D 上的 ② 有限集合。 答:①数据元素 ②关系 (4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。 答:①没有 ②没有 (5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。 答:①前驱 ②1 ③后继 ④任意多个 (6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。 答:任意多个 (7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。 答:①顺序 ②链式 ③索引 ④哈希 (8)一个算法的效率可分为 ① 效率和 ② 效率。 答:①时间 ②空间 3. 简答题 (1)数据结构和数据类型两个概念之间有区别吗? 答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素的集合。数据类型不仅定义了一组数据元素,而且还在其上定义了一组操作。 (2)简述线性结构、树形结构和图形结构的不同点。 答:线性结构反映结点间的逻辑关系是一对一的,树形线性结构反映结点间的逻辑关系是一对多的,图在结构反映结点间的逻辑关系是多对多的。 (3)设有采用二元组表示的数据逻辑结构S=(D,R),其中D={a ,b ,…,i },R={(a ,b ),(a ,c ),(c ,d ),(c ,f ),(f ,h ),(d ,e ),(f ,g ),(h ,i )},问相对于关系R ,哪些结点是开始结点,哪些结点是终端结点? 答:该逻辑结构为树形结构,其中a 结点没有前驱结点,称为根结点,b 、e 、g 、i 结点没有后继结点,是终端结点,也称为叶子结点。 (4)以下各函数是算法中语句的执行频度,n 为问题规模,给出对应的时间复杂度: T 1(n )=n log 2n -1000log 2n T 2(n )=3log 2n -1000log 2n T 3(n )=n 2-1000log 2n T 4(n )=2n log 2n -1000log 2n 答:T 1(n )=O(n log 2n ),T 2(n )=O( ),T 3(n )=O(n 2),T 4(n )=O(n log 2n )。 (5)分析下面程序段中循环语句的执行次数。 int j=0,s=0,n=100; 3 log 2n

数据结构试题及答案(10套最新)

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结 点,则执行(A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?( B ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.AOV网是一种(D )。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度(B)。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的( A )。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为(D )。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的_ _尾______进行,删除操作是在队列的____ 首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为_________,在表尾插入元素的时间复杂度为____________。

相关文档
最新文档