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

1.队列和栈的区别

答:一、规则不同

(1)队列:先进先出

(2)栈:先进后出

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

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

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

三、遍历数据速度不同

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

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

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

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

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

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

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

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

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

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

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

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

4.哈夫曼树的原理

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

5.链表的

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值