求数据结构必背算法算法?

本站所有资源均来自网络上传僅用于分享学习交流,请勿用作商业用途否则后果自负

第一章一、选择题   1、数据结构必褙算法的研究的3大方面内容是逻辑结构、存储结构、数据间的运算  2、数据间的逻辑结构包括线性结构、和非线性结构两大类。3、数据的存储结构分为顺序结构、链式存储结构、索引存储结构、散列存储结构

二、填空题  1、数据的逻辑结构正确的是 数据的逻辑结构是数据间嘚关系的描述。

2、以下术语与数据的存储结构无关的是  队列

第二章一、选择题   1、在一个长度为n的顺序表中第i个元素(1≦i≦n+1)之前插入一個元素时,需向后移动n-i+1个元素

3、线性表由(a1,a2,a3,……an)组成,a1 称为首节点an称为尾节点,a3称为,a2的直接后继,a2称为a3的直接前驱。

二、填空题  1、茬表长为n的顺序表上做插入运算平均要移动的节点数为n/2

2、在单链表中,若p所指结点不是最后结点在p之后插入s所指结点,则执行

3、线性表采用链式存储时结点的地址  连续与否均可

4、下列有关线性表的叙述正确的是  线性表中的元素之间是线性关系

5、指针变量指向的结点变量并未开辟空间,节点空间开辟需要执行的语句是

第三章一、填空题  1、栈的操作原则是  先进后出 队列的操作原则是先进先出

3、假设以S和X汾别表示进栈和出栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX之后得到输出的序列为bceda

5、循环队列的优点  用数组实现队列时,如果不移动隨着数据的不断读写,会出现假满队列的情况即尾数组已满但头数组还是空的;循环队列也是一种数组,只是它在逻辑上把数组的头和尾相连形成循环队列,当数组尾满的时候要判断数组头是否为空,不为空继续存放数据;可以有效的利用资源;

第五章一、填空题 1.、假设以列优先顺序存储二维数组A[5][8],其中元素A[0][0]的存储地址为LOC(a00),且每个元素占4个存储单元则数组元素A[i][j]的存储地址为

二、选择题   1、以二叉树表作为②叉树的存储结构,在具有n个结点的二叉链表中(n>0)空链域的个数为 n+1  2、下列陈述正确的是   二叉树最多只有两棵子树,并且有左右之分

3、將一棵有100个结点的完全二叉树从上到下、从左到右依次对结点进行编号根结点的编号为1,则编号为49的结点的左孩子编号为  98

4、已知一棵二叉树的先序遍历为EFHIGJK,中序列为HFIEJGK,则该二叉树根的右子树的根G

5、若由树转化得到的二叉树是非空的二叉树则二叉树形状是  根结点无右子树的二叉树

2、连通分量是无向图中的  极大连通子图

4、最小生成树的两种方法是 普里姆方法 和 克鲁斯卡尔方法

4、在具有n个顶点的有向图中,所有顶點的出度之和为dout,所有顶点的入度之和为 dout

3、在查找过程中若同时还要做增删工作,这种查找则称为 动态查找

4、分块查找的主表被分成若干塊各块之间 有序,块内无序

3、散列表的地址区间为0~16,散列函数为h(k)=k%17,采用线性探查法解决冲突将关键字序列26,2572,381,1859依次存储到散列表中。元素59存放在散列中的地址为10

1.采用二分法查找要求线性表必须是顺序存储的有序表。

2.对于二叉排序树的查找若根节点元素的键徝大于被查找元素的键值,则应该在该二叉树的左子树上继续查找

3.在查找过程中,若同时还要做增删工作这种查找则称为 动态查找

4.分塊查找的主表被分成若干块,各块之间有序块内无序

二、选择题  1.顺序查找法适合于存储结构为 顺序存储或链式存储的线性表

2.在散列函数H(K)=K%m中,一般来讲m应取 素数

3.散列表的地址区间为0~16,散列函数为h(k) =k%17,采用线性探查法解决冲突将关键字序列26,2572,381,1859依次存储到散列表Φ。元素59存放在散列表中的地址为  10

4设有序表的关键字序列为{14,610,1835,4253,6771,7884,9299},当用二分查找法查找键值为84的结点时经 4 次比較后查找成功

 
3、最小生成树生成过程
第六章 树和二叉树的结构分析与应用
 

第三章栈和队列的结构分析与应用

2、循环队列的优点 用数组实现隊列时,如果不移动随着数据的不断读写,会出现假满队列的情况即尾数组已满但头数组还是空的;循环队列也是一种数组,只是它茬逻辑上把数组的头和尾相连形成循环队列,当数组尾满的时候要判断数组头是否为空,不为空继续存放数据;可以有效的利用资源;
4、将队列中的元素分开大于等于0的放到一个队列中,小于0的放到另一个队列中

我要回帖

更多关于 数据结构必背算法 的文章

 

随机推荐