数据结构面试

前言:被面试官问道什么是链表?应用场景有哪些?我晕了,赶紧来总结一下。

链表

1、什么是链表?

链表是一种常用的数据结构,通常由一系列结点组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

struct ListNode
{
    double value;//节点的数据部分
    ListNode *next;//指向下一个节点的后继指针
    ListNode(double valuel, ListNode *nextl)
    {
        value = value1;
        next = next1;
    }
};

2、链表与数组的区别?

数组: 在内存中是连续存储的,地址连续,查找效率高。但是在定义时就必须申请一段连续的内存空间,在运行时空间大小不会随需要进行增减。数据量大,可能造成越界;数据量小,可能造成内存浪费。
链表: 在内存中是离散存储的,可以根据需要动态申请和删除内存空间。对于数据增加和删除以及插入比数组灵活。还有就是链表中数据在内存中可以在任意的位置,通过应用来关联数据

3、数组、链表应用场景有哪些?

数组应用场景:

  • 数据比较少;
  • 经常做的运算是按序号访问数据元素;
  • 构建的线性表较稳定

链表应用场景:

  • 对线性表的长度或者规模难以估计;
  • 频繁做插入删除操作;
  • 构建动态性比较强的线性表。

二叉树

二叉树

1、什么是二叉树?

简单地理解,满足以下两个条件的树就是二叉树:
1)本身是有序树;
2)树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2;
二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。

2、什么是满二叉树?

在二叉树中,如果除了叶子节点,其他节点的度都为2 ,则该二叉树就是满二叉树。
在这里插入图片描述

3、完全二叉树

如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。
在这里插入图片描述

4、二叉树应用场景

海量数据并发查询,二叉树复杂度是O(K+LgN)。二叉排序树就既有链表的好处,也有数组的好处, 在处理大批量的动态的数据是比较有用
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值