数据结构复试面试

数组和链表的区别

1.最重要的区别是数组在定义的时候就应该固定好了长度,而链表对于长度是不固定的。因此数组不适合于动态增减的情况,而链表适合。
2.两者对于数据的操作,对于插入和删除,链表是比较合适的(关键在与找到插入删除的点),而对于数组来说,插入和删除是比较麻烦的,因为需要移动一部分的数据。
3.从内存存储空间来看,数组从栈中分配空间,对于程序员来说比较方便,但自由度小。而链表从堆中分配空间,自由度大但是申请管理比较麻烦。

二叉树和度为2的树的区别

1.二叉树的度可以为0,1和2,但是度为2的树的度只能是2.
2.二叉树的子树有左子树和右子树的区别,而度为2的树的子树左右没有分别。

链表相对于线性表的区别

更加方便对数据的插入和删除

单链表中,增加头结点的目的

为了方便运算的实现,让对第一个结点的操作和其他点一致

栈和队列的共同特点是

都是限制在端点处对数据进行插入和删除,栈是在一个端点进行处理,而队列是在一个端点插入,一个端点删除

两种基本的存储结构

线性存储结构和链式存储结构

链表和循环链表的优点

链表是在插入和删除的时候,不需要移动元素,但是不能随机查找到对应的元素。而循环链表的优点在于从任何一个点访问链表都可以访问完全部表。

数据的存储结构和逻辑结构

https://blog.csdn.net/panjiao119/article/details/80663685

算法的五个特征

1.可行性 2.确定性3.有限性 4.输入 5.输出

关于各种各样的排序:

在这里插入图片描述
对快速排序的描述:

基本思想就是:选取一个关键字,通常是第一个。然后通过一趟排序,确定好这个关键字的最后的位置,并且将记录分为关键字的左右部分,左边比关键字要小,右边要比关键字大,随后对这两部分的子表以此使用该分类方法

一些会问到的排序:

1.当表元素距离最终位置不远,为节省时间,可以采用直接插入排序
2.当数据规模小的时候,选择直接插入排序或者选择排序
3.当基本有序的时候,,选直接插入排序和直接选择排序
4.当数据规模较大的时候,选择快速排序,快速排序的平均时间最短,但是在最坏情况时,是On2
5.堆排序所需要的辅助空间比快排要小,但是这个两个排序都不是稳定的。

dfs和bfs的区别
在这里插入图片描述

迪杰特斯拉算法和弗洛伊德算法的区别

从某个源点到其余各个顶点的最短路径问题:迪杰斯特拉(Dijkstra)算法。 图中所有到多有顶点的最短路径问题:弗洛伊德(Floyd)算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值