0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

java常见数据结构面试

h1654155282.3538 来源:陈翠 2019-08-15 16:09 次阅读

java常见数据结构面试

Java面试过程中,经常会被问到数据结构和算法相关的知识。对于工作多年的程序员来说,这些理论的知识可能已经忘得差不多了吧,所以面试前还是有必要临时抱抱佛脚的。

其实面试官的要求也很简单,只要大体懂得其原理即可,并不太会深究,尤其对社招。校招在此不做讨论,毕竟刚出校园,理论知识正值巅峰,哈哈。

一、线性表(重点)

线性表是由N个元素组成的有序序列,也是最常见的一种数据结构。重点有两个数组和链表。

1、数组

数组是一种存储单元连续,用来存储固定大小元素的线性表。java中对应的集合实现,比如ArrayList。

2、链表

链表又分单链表和双链表,是在物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。java中对应的集合实现,比如LinkedList。

二、栈与队列

1、栈

栈,是一种运算受限的线性表,重点掌握其后进先出的特点。表的末端叫栈顶,基本操作有push(进栈)和pop(出栈)。java中stack就是简单的栈实现。

2、队列

队列也是一种操作受限制的线性表,重点掌握其先进先出的特点。表的前端只允许进行删除操作,表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。java中很多Queue的实现,消息中间件的队列本质也是基于此的。

三、树(重点)

在非线性结构里面,树是非常非常重要的一种数据结构。基于其本身的结构优势,尤其在查找领域,应用广泛,其中又以二叉树最为重要。树的话我们这里只重点说一下二叉树。

1、二叉搜索树

二叉搜索树又叫二叉查找树,又叫二叉排序树。性质如下:(1) 若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2) 若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3) 左、右子树也分别为二叉排序树;(4) 没有键值相等的结点。

2、平衡二叉树

平衡二叉树又叫AVL树。性质如下:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。

3、红黑树

红黑树是一种特殊的平衡二叉树,它保证在最坏情况下基本动态集合操作的事件复杂度为O(log n)。

红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单。平衡二叉树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知。

四、图

图是比线性表和树更复杂的数据结构,面试中基本不太会问到,大家有兴建的可以自己去了解下。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2904

    浏览量

    102994
  • 数据结构
    +关注

    关注

    3

    文章

    564

    浏览量

    39900
收藏 人收藏

    评论

    相关推荐

    数据结构与算法分析(Java版)(pdf)

    数据结构与算法分析(Java版)(pdf)http://www.ibeifeng.com/read.php?tid=4812&u=73481【中文】Java数据结构和算法中文第
    发表于 12-20 21:22

    java经典面试题深度解析

    回答面试题Int 与Integer的区别第三节 以数据结构挖掘集合面试考点第四节 经典面试题重载与重写第五节 如何回答面试官提问
    发表于 06-20 15:16

    Java Killer系列之Java经典面试套路讲解

    的朋友可以看看,希望能帮助到大家! 课程目录: 一、 String Stringbuffer Stringbuilder 深度解析二、 完美回答面试题Int 与Integer的区别三、 以数据结构挖掘
    发表于 06-21 15:48

    Java Killer系列之Java经典面试套路讲解

    、 String Stringbuffer Stringbuilder 深度解析二、 完美回答面试题Int 与Integer的区别三、 以数据结构挖掘集合面试考点四、 经典面试题重载与
    发表于 06-22 15:16

    java基础:Java七大外企经典面试精讲视频

    、 以数据结构挖掘集合面试考点4、 经典面试题重载与重写5、 如何回答面试官提问Java的接口与抽象类6、
    发表于 06-29 15:00

    java面试考点精讲视频教程!

    Stringbuffer Stringbuilder 深度解析完美回答面试题Int 与Integer的区别以数据结构挖掘集合面试考点经典面试题重载与重写如何回答
    发表于 07-01 15:26

    面试必看:java面试考点精讲视频教程

    Stringbuffer Stringbuilder 深度解析第二节、 完美回答面试题Int 与Integer的区别第三节、 以数据结构挖掘集合面试考点第四节、 经典面试题重载与重写
    发表于 07-06 12:46

    视频教程:Java常见面试题目深度解析!

    Stringbuffer Stringbuilder 深度解析第二节、 完美回答面试题Int 与Integer的区别第三节、 以数据结构挖掘集合面试考点第四节、 经典面试题重载与重写
    发表于 07-11 10:55

    视频教程:Java常见面试题目深度解析!

    Stringbuilder 深度解析第二节、 完美回答面试题Int 与Integer的区别第三节、 以数据结构挖掘集合面试考点第四节、 经典面试题重载与重写第五节、 如何回答
    发表于 07-29 10:20

    收藏 | 程序员面试,你必须知道的8大数据结构

    可以用两种形式表示:邻接矩阵邻接表常见图遍历算法广度优先搜索深度优先搜索面试中关于图的常见问题:实现广度和深度优先搜索检查图是否为树计算图的边数找到两个顶点之间的最短路径树树形结构是一
    发表于 09-30 09:35

    常见数据结构

    `数据结构在实际应用中非常常见,现在各种算法基本都牵涉到数据结构,因此,掌握数据结构算是软件工程师的必备技能。一、什么是数据结构
    发表于 05-10 07:58

    Java数据结构和算法_计晓云

    Java数据结构和算法》以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题:了解这些知识以期使计算机的应用获得最好的表现。不管使用何种语言或平台,掌握了数据
    发表于 09-15 14:55 0次下载
    <b class='flag-5'>Java</b><b class='flag-5'>数据结构</b>和算法_计晓云

    数据结构Java版)

    数据结构Java版),个人收集整理了很久的资料,大家根据自己情况,有选择性的下载吧~
    发表于 10-27 14:08 0次下载

    数据结构与算法分析——Java语言描述

    数据结构与算法分析——Java语言描述说明。
    发表于 05-31 14:25 22次下载

    如何理解并掌握Java数据结构

    Java 数据结构Java 程序员必须掌握的重要知识之一。
    的头像 发表于 06-06 15:53 584次阅读