数据结构与算法

数据结构与算法-数据结构

2021-04-25  本文已影响0人  HughJin

Java工程师知识树


概念:

数据结构是一种存储和组织数据的方法,可以有效地使用它。
数据结构是任何程序或软件的构建块(基础块)。

术语:

就数据结构而言,使用以下术语:

用途:

随着应用程序变得越来越复杂,数据量日益增加,可能会出现以下问题:

为了解决上述问题,使用数据结构。组织数据以形成数据结构,使得不需要搜索所有项目并且可以立即搜索所需数据

分类:
操作:

遍历每个数据结构都包含一组数据元素。遍历数据结构表示访问数据结构的每个元素,以便执行某些特定操作,如搜索或排序。示例 :如果需要计算学生在6个不同科目中获得的分数的平均值,需要遍历完整的分数数组并计算总和,然后将总分数除以科目数,即6, 最后得到平均值。
插入插入是在任何位置将元素添加到数据结构的过程。如果数据结构的大小是n,那么只能在n-1个数据元素之间插入元素。
删除从数据结构中删除元素的过程称为删除。 可以在任何随机位置删除数据结构中的元素。如果要从空数据结构中删除元素,则会发生下溢。
搜索在数据结构中查找元素位置的过程称为搜索。 有两种算法可以执行搜索,即线性搜索和二进制搜索。
排序按特定顺序排列数据结构的过程称为排序。 有许多算法可用于执行排序,例如,插入排序,选择排序,冒泡排序等。
合并当两个列表分别为大小为M和N的列表A和列表B时,相似类型的元素,连接产生第三个列表,列表C的大小(M + N),则此过程称为合并。


数据结构分类

1.线性数据结构

如果数据结构的所有元素按线性顺序排列,则称为线性数据结构。
在线性数据结构中,元素以非分层方式存储,除了第一个最后一个元素,它的每个元素具有后继元素前导元素
线性数据结构的类型有:数组;链表;堆栈;队列

2.非线性数据结构

非线性数据结构不形成序列,即每个项目或元素以非线性排列与两个或更多个其他项目连接。 数据元素不按顺序结构排列。
非线性数据结构的类型有树;图

树数据结构基于节点之间的父子关系。 除了叶节点之外,树中的每个节点可以具有多个子节点,而除了根节点之外,每个节点可以具有最多一个父节点。
树可以分为许多类别

  1. 无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;

  2. 有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;

  3. 二叉树:每个节点最多含有两个子树的树称为二叉树;二叉树又分为

    • 完全二叉树:对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
    • 满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。
    • 霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优二叉树;

数据结构优缺点汇总

上一篇下一篇

猜你喜欢

热点阅读