• 数据结构面试整理


    数据结构:
    1.数据逻辑结构可以划分为集合,数据结构中得元素之间除了同属于一个集合得相互关系外,没有其他关系。线性结构,数据结构中得元素存在一对一得相互关系。树形结构,数据结构中得元素存在一对多得相互关系。图形结构,数据结构中得元素蹲在多对多得相互关系。
    2.数据得逻辑结构在计算机存储控件中得存放形式称为数据得物理结构也可以称为存储结构,一般来说,一种数据结构得逻辑结构根据需要可以表示成多种存储结构,常用得存储结构有顺序存储,链式存储,索引存储和哈希存储等。
    3.数据结构按照数据 得逻辑结构进行分类可分为线性结构和非线性结构。线性结构是非空集,有且仅有一个开始结点和一个终端结点。线性结构所有结点都最多只有一个直接 前驱结点和一个直接后继结点。线性表,栈队列和串等都属于线性结构。非线性结构的一个结点可能有多个直接前驱结点和多个直接后继结点。数组、广义表、树结构和图结构等数据结构都属于非线性结构。
    4.数据结构就是按照一定的逻辑结构将数据组织起来,并选择恰当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器李,算法研究的目的是为了更有效的处理数据,提高数据运算效率。常用的数据结构算法有,检索、插入、删除、更新、排序

    5.常用的数据结构有数组、栈、队列、链表、树、图、堆、散列表

    6.数组,数组是一种聚合数据类型,它将具有相同类型的若干变量有序地组织在一起的集合。数组可以说是最基本的数据结构,一个数组可以分解为多个数组元素。数组的特点是长度确定,一旦被创建,大小就不可改变,其元素必须是相同的类型,不允许出现混合类型,数组中的元素可以是任意数据类型,数组本身就是对象,数组元素相当于对象的成员变量。

    7.栈,是一种只能在一端进行插入和删除操作的特殊线性表,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶。在java中,栈的内部实现是通过数组来实现的,它的插入和取出操作,每次都会根据最新的大小实例化一个新的数组,并将旧数组的内容拷贝进新的数组来完成栈的特性。

    8.队列,队列是一种特殊的线性表,它只允许在表的前端进行删除操作,在表的后端进行插入操作,队列是一种操作受限制的线性表,常用的有链式队列,循环队列、阻塞队列,并发队列。

    9.链表,是一条相互链接的数据节点表,每个节点由两部分组成,数据和指向下一个节点的指针,根据种类又可以分为单向链表。双向链表、循环链表、多向表等。链表的优点有,物理存储单元上非连续,采用动态内存分配,能够有效的分配和利用内存资源,节点删除和插入简单,不需要内存空间的重组,缺点是,不能进行索引访问,只能从头节点开始顺序查找。数据结构较为复杂,需要大量的指针操作。

    10.树,树是N个结点的有限集合。常见的有,二叉树、平衡二叉树、红黑树、哈夫曼树、B树、B+树、B*树、R树等。

    11.图,图是一种比线性表和树更加复杂的数据结构,在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。图是由顶点的有穷非空集合和顶点之间边的集合组成,图不可以是空图,图中不能一个顶点也没有,图的顶点集一定非空

    12.堆,堆通常可以看做一棵树的数组对象,堆中某个结点的值总是不大于或不小于其父节点的值,堆总是一颗完全二叉树,将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做小根堆,常见的堆有二叉堆,斐波那契堆等。堆是非线性数据结构,相当于一维数组,有2个直接后继

    13.散列表,散列表是根据关键码值而直接进行访问的数据结构,也就是说,它是通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表

  • 相关阅读:
    外卖项目02---员工管理业务开发
    如何使用Java对doc文档拆分,但无法获取表格位置,只能统一获取表格?
    插图精美的html & css教程
    第四代管网水位监测仪:管网水位监测仪使用方法
    vuex基础学习-看完即上手篇
    基于tornado BELLE 搭建本地的web 服务
    leetcode 739. 每日温度、496. 下一个更大元素 I
    Node.js精进(8)——错误处理
    Tomcat快速搭建网站详解【JAVAWeb】
    Linux远程工具专家推荐(二)
  • 原文地址:https://blog.csdn.net/qq_24856205/article/details/125600339