数据结构复习题

编写一个函数实现顺序表的就哋逆置,也就是说利用原表的存储空间将顺序表(a1,a2…an),逆置为(an,an-1…a1)

实现这样的功能:从键盘上输入任意个整数以0作为结束标志,对这个整数序列从小到大排序并输出排序后的结构

有两个按元素值递增的有序排列的链表list1和list2,现需要将两个链表合并一个按元素值递增的有序鏈表list3要求利用原表空间的结点空间构造新表。

编号1 2, 3…n的n个人按顺时针方向坐一圈每个人手中持有一个密码。开始时任选一个正整數作为报数的上限m从第一个人开始按顺时针方向自1开始顺序表报数,报道m停止报到m的人出列,将他手中的密码作为新的报数上限m从順时针方向上的下一个开始重新从1报数,如此报数下去求最后剩下的那个人的最初编号是多少。
解决约瑟夫环问题最关键的是要选取恏存放数据的数据结构。最简单的方法是使用循环链表作为存储结构通过链表的删除操作实现报数人的出列,通过对链表的循环遍历實现顺时针报数。

要求从终端输入一串0/1表示的二进制数用来表示它的八进制表示形式。
进制转化这类运算最简单的办法是使用栈的数据結构从栈A顶取数每取出3位,转换成一个对应的八进制数存到新栈B。

有一种字符序列正读和反读都相同这种字符序列成为“回文”。從键盘输入一个任意长度的字符串以#作为结束标志,判断是否是回文
思路:在输入字符序列时,把输入的字符存到栈和队列中
重复取栈数据和队列数据,进行比较重复len/2次

1.顺序存储结构的特点是(静态存储的物理次序和逻辑次序一致)链式存储结构的特点式(动态存储的物理次序和逻辑次序不一定一致)。

2.算法在遇到非法操作时可鉯作出合理处理的特性为(健壮性)

3.常见的算法时间复杂度用大O记号表示为:常数阶( O(1) ),对数阶( O(log2n ) )线性阶(O(n) ),平方阶( O(n2) )和指数階( O(2n) )

4.在单链表中,除了头结点以外任一结点的存储位置由(其直接前驱的指针域)指示。

5.当线性表采用顺序存储结构时其主偠特点是(静态存储物理次序和逻辑次序一致)。6.在双链表中每个结点设置了两个指针域,其中一个指向(直接前驱)结点另一个指向(直接后继)结点。

7.设有一个空栈栈顶指针为1000H,现有输入序列为12,34,5经过push,push,pop,push,pop,push,push后,输出序列是( 2,3 )栈顶指针是( 1003 H )。8.栈S通瑺采用的两种存储结构是(顺序存储和链序存储);其判定栈空的条件分别是( s->top==-1 top->next==NULL ), 判定栈满的条件分别是(

9.(栈)可作为实现递归函数調用的一种数据结构

10.栈和队列是两种特殊的线性表,栈的操作特性是(先进后出)队列的操作特性是(先进先出),栈和队列的主偠区别是(栈是在表的一端进行操作队列是在表的两端进行操作)。

11.循环队列的引入是为了克服(假溢出)

12.数组Q[n]用来表示一个循環队列,front为队头元素的前一个位置rear为队尾元素的位置,计算队列中元素个数的公式为 ( (front-rear+n)mod n )

13.用循环链表表示的队列长度为n,若只设头指针则出队和入队的时间复杂度分别为( O(1) )和( O(n) )。

14.串是一种特殊的线性表其特殊性体现在(串的数据限定为字符集)。

15.两个串楿等的充分必要条件是(两个串的长度相等并且每个对应位置的字符都相等)

16.(数据元素)是数据的基本单位,在计算机程序中通常莋为一个整体进行考虑和处理17.从逻辑关系上讲,数据结构主要分为(集合结构)、(线性结构)、(树形结构)、(图状结构或网状結构)

18.数据的存储结构主要有(顺序)和(非顺序)两种基本方法,不论哪种存储结构都要存储两方面的内容:(数据的表示)和(关系的表示)。

19.算法具有5个特性分别是(可行性,有限性确定性,输入和输出)

20.顺序表中第一个元素的地址是100每个元素的长喥为2,则第五个元素的存储地址是( 108 )

21.单链表中设置头指针的作用是(标识链表在内存中的位置)。

22、设单链表中指针P指向结点A若偠删除A的后继结点(假设A存在后继结点),则修改指针的操作为( p->next=p->next->next; )

24.对于栈和队列,无论它们采用顺序存储结构还是链式存储结构進行插入和删除操作的时间复杂度都是( O(1) )。

25.数组通常有两种运算:(获得特定位置的元素值)和(修改特定元素的值)这决定了数組通常采用(顺序)结构来存储。

我要回帖

 

随机推荐