数据结构题目和知识点

查找:

1.有序表折半查找成功/不成功时最多的比较次数:    log2(n+1)

2.判定树外部结点是:一次失败查找过程终止的结点

3.分开查找线性表m个元素时,每块分为根号m个结点

4.具有n层结点的AVL树至少有()个结点:N0=0;N1=1;N2=2;Nn=N(n-1)+N(n-2)+1

5.对于二叉排序树进行()可以得到从小到达的结点序列:中序遍历

6.衡量查找算法好坏的主要标准是:关键字的平均比较次数或平均比较长度

7.对于一颗高度为h的平衡二叉树,叶子节点的最小层次:L1=1;L2=2;Lh=Min{L(n-1),L(n-2)}+1 (n>2)


求出栈数C(n,2n)的公式是:2n!/n!*n!/(n+1)

n个结点可构造出多少种不同形态的二叉树:2n!/n!*(n+1)!

有n个结点的二叉搜索树具有多少种不同形态:2n!/n!*n!/(n+1) 

折半查找法的下标取整

快速排序选取:将第一个节点作为基准,将它放在最终位置上(根据大小排序),与最终位置上的结点互换位置。比它小的结点全都放在它的左边(读到一个放就在最左边),大的全都放在右边(读到一个放就在最右边)

广义表的表尾一定是一个广义表

广义表Tail(a,(b,c)),结果为((b,c)),要取出(b,c)必须在做一次head操作


1.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(    )最节省时间。

A. 单链表   B.单循环链表   C. 带尾指针的单循环链表   D.带头结点的双循环链表

2.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用(    )存储方式最节省运算时间。

A.单链表      B.双链表     C.单循环链表     D.带头结点的双循环链表

3. 静态链表中指针表示的是(    )

A. 内存地址       B.数组下标     C.下一元素地址      D.左、右孩子地址

4.在单链表中设置头结点的作用是________。

使插入和删除操作统一

5.顺序存储结构是通过________表示元素之间的关系的;链式存储结构是通过________表示元素之间的关系的。

物理上相邻,指针

6.带头结点的双循环链表L为空表的条件是:________。

L->next=L&&L->prior=L;

7.说明在线性表的链式存储结构中,头指针与头结点之间的根本区别

在线性表的链式存储结构中,头指针指链表的指针,若链表有头结点则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。

头结点是为了操作的统一、方便而设立的,放在第一元素结点之前,其数据域一般无意义,有头结点后,对在第一元素结点前插入结点和删除第一结点,其操作与对其它结点的操作统一了。

而且无论链表是否为空,头指针均不为空。首元结点也就是第一元素结点,它是头结点后边的第一个结点。

8.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(    )。

A. 不确定          B. n-i+1          C.  i           D. n-i

9. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(     )。

 A. i-j-1          B. i-j            C. j-i+1      D. 不确定的

10. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是(    )。

    A. i            B. n-i        C. n-i+1       D. 不确定

11. 表达式a*(b+c)-d的后缀表达式是(    )。

A.abcd*+-     B. abc+*d-    C. abc*+d-     D. -+*abcd

12. 表达式3* 2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(   ),其中^为乘幂 。

A. 3,2,4,1,1;(*^(+*-     B. 3,2,8;(*^-    C. 3,2,4,2,2;(*^(-      D. 3,2,8;(*^(-

13. 循环队列存储在数组A[0..m]中,则入队时的操作为(    )。

A. rear=rear+1               B. rear=(rear+1) mod (m-1)

C. rear=(rear+1) mod m       D. rear=(rear+1)mod(m+1) 

14. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?(  )

A. 1和 5         B. 2和4          C. 4和2         D. 5和1  

15. 在作进栈运算时,应先判别栈是否( B  ),在作退栈运算时应先判别栈是否( A  )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(  B  )。
为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的 (  D  )分别设在这片内存空间的两端,这样,当(  C  )时,才产生上溢。 
①, ②:
A. 空         B. 满          C. 上溢        D. 下溢      
③: A. n-1            B. n           C. n+1         D.  n/2 
④: A. 长度           B. 深度      C. 栈顶         
D. 栈底

⑤:A. 两个栈的栈顶同时到达栈空间的中心点.       B. 其中一个栈的栈顶到达栈空间的中心点. 

  C. 两个栈的栈顶在栈空间的某一位置相遇.         D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底.

16. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(    )。

A. 不确定          B. n-i+1          C.  i           D. n-i

17. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(     )。

 A. i-j-1          B. i-j            C. j-i+1      D. 不确定的

18.当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与top[2],则当栈1空时,top[1]为______,栈2空时 ,top[2]为_______。0,n+1

19. 多个栈共存时,最好用_______作为存储结构。链式存储结构

20.表达式23+((12*3-2)/4+34*5/7)+108/9的后缀表达式是_______。23123*2-4/345*7/++1089/+

21.循环队列的引入,目的是为了克服_______。假溢出时大量移动数据元素。

22.区分循环队列的满与空,只有两种方法,它们是______和______。牺牲一个存储单元,设标记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值