当前位置:   article > 正文

数据结构与算法简答题汇总

数据结构与算法简答题

1.队列和栈的区别

答:一、规则不同

(1)队列:先进先出

(2)栈:先进后出

二、对插入和删除操作的限定不同

(1)队列:只能在表的一端进行插入,并在表的另一端进行删除;

(2)栈:只能在表的一端插入和删除。

三、遍历数据速度不同

(1)队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快;

(2)栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保持数据在遍历前的一致性。

2.折半查找和顺序查找的优缺点

答:顺序查找:从表的一端开始,逐个进行记录的关键字和给定值的比较,若找到一个记录的关键字与给定值相等,则查找成功;若整个表中的记录均比较过,仍未找到关键字等于给定值的记录,则查找失败。

优点:算法简单且适应面广,对查找表的结构没有要求,无论记录是否按关键字有序排列均可应用。

缺点:与其他查找方法相比,顺序查找方法在n值较大时,其平均查找长度较大,查找效率较低。

折半查找:又称为二分查找法,查找过程令处于中间位置记录的关键字和给定值比较,若相等,则查找成功;若不等,则缩小范围,直至新的查找区间中间位置记录的关键字等于给定值或者查找区间没有元素时为止。

优点:比较次数少,查找速度快,平均性能好;

缺点:要求待查表为有序表,且插入删除困难。

3.二叉树的顺序存储和链式存储

答:顺序存储:是指用一组地址连续的存储单元依次从上而下、从左到右存储完全二叉树上的结点元素,即将完全二叉树上编号为 i 的结点元素存储在某个数组下标为 i-1 的分量中,然后通过一些方法确定结点在逻辑上的父子和兄弟关系。

链式存储:是指用一个链表来存储一棵二叉树,二叉树中的每个结点用链表的一个链结点来存储。

4.哈夫曼树的原理

答:又称最优二叉树,是一类带权路径长度最短的树。假设有n个权值{w1,w2,…,wn},如果构造一棵有n个叶子节点的二叉树,而这n个叶子节点的权值是{w1,w2,…,wn},则所构造出的带权路径长度最小的二叉树就被称为哈夫曼树。

5.链表的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/680509
推荐阅读
相关标签
  

闽ICP备14008679号