【数据结构】基础知识点整理(2)

1. 二叉排序树中,查找的平均时间复杂度是O(logn) ;
    对于栈和队列来说,查找就意味着把元素挨个出栈或者出队,故平均时间复杂度是O(n) ;
    而哈希表,直接通过关键码查找元素,平均为0(1) ;

2.经常被用作队列的开源软件有:Redis 、kafka。

3.执行广度优先搜索图操作时,需要使用队列作为辅助存储空间。

4.在循环队列中,队头指针和队尾指针的动态变化决定队列的长度。

5.关于堆和栈的区别:

         ①栈的大小是固定的,堆的大小受限于系统中有效的虚拟内存

         ②栈的空间由系统决定何时释放,堆需要自己决定何时去释放

         ③堆的使用容易产生碎片,但是使用起来最方便

6.用数组存储二叉树时,总是以层次遍历顺序存储节点。

7.要使一颗非空二叉树的先序序列与中序序列相同,其所有叶子节点需满足的条件是只有右子树。

8.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。

9.领接表是图的一种链式存储结构。

10.在链表中,如果有两个节点的同一个指针域的值相等,则该链表一定是非线性结构。

11.对矩阵压缩存储是为了减少存储空间。

12.Map和Dict这两个容器可以使用数组,但不能使用链表来实现。优先队列一般利用堆来实现堆用数组来做的话,确实可以快很多,体现在用数组可以很快定位到父子节点,而链表的话,就没有那么方便了,但是这并不意味着链表不能做,可以,只是时间复杂度会比较高而已.字典一般要 求最好能在0(1)的时间就定位到要查询的值,如果采用链表的话,是不可能有这么小的时间复杂度的,字典一般用hash表来实现,在不碰撞的情况下,能够达到这么好的复杂度,用红黑树实现的map,查找的复杂度在log(N)左右.用链表的话,可以实现字典,但是效率不够,它在查找,插入等各种操作上都没有优势.

13.栈可以是顺序存储,也可以是链式存储,与存储结构无关。循环队列是队列的顺序存储结构,链表是线性表的链式存储结构,用散列法存储的线性表叫散列表, 也与存储结构有关。

14.往队列的队尾插入一一个元素为入队,从队列的排头删除一个元素称为退队。 初始时ront=rear=0,  front总是指向队头元素的前一位置,入队一次rear+1,退队一 次front+1。队列队头队尾指针相同时队列为空。而带链的队列,由于每个元素都包含一个指针域指向下一个元素,当 带链队列为空时 front=rear=Null , 插入第1个元素时,rear+1指向该元素,front+1也指向该元素,插入第2个元素时rear+1,front不变,删除1 个元素时front+1。即front=rear不为空时带链的队列中只有一一个元素。

15.线性结构是一一个有序数据元素的集合。数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。常用的线性结构有: 线性表,栈,队列,双队列,数组,串。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值