一、几种特殊线性表 (一)线性表——具有相同类型的数据元素的有限序列。 (二)特殊线性表 1、栈——仅在表尾进行插入和删除操作的线性表。 2、队列——在一端进行插入操作,而另一端进行删除操作的线性表。 3、串——零个或多个字符组成的有限序列(被限制元素的类型为字符) 。 4、(多维)数组——线性表中的数据元素可以是线性表,但所有元素的类型相同。 5、广义表——线性表中的数据元素可以是线性表,且元素
转载
2024-01-10 11:47:28
101阅读
多维数组 数组是一种常见的数据类型,由于数组中各元素具有相同的数据类型,并且数据元素的下标一般具有固定的上界和下界。 数组是一种元素个数固定的线性表 数组一般不做插入和删除的操作,因此数组一旦建立,结构中的元素个数和元素间的关系就不再发生变化,所以一般用顺序存储方法来表示数组 由于计算机的内存结构是一维的,所以二位数组一般用行向量,列向量形式表示&n
转载
2023-07-07 23:59:06
40阅读
多维数组其实就是数组的一种扩展形式。这里介绍几种特殊的多维数组即特殊的矩阵。1.对称矩阵的压缩存储算法:矩阵中的所有数据通过一定的规律存储在一维数组中。其中k=j*(j-1)/2+i-1。其中j和i是矩阵中的j和i而k是一维数组的下标号。2.三角矩阵的压缩存储:矩阵下标i和j的在一维数组k中对应的公式为:当ik=i*(i-1)/2+j-1;当i>jk=n*(n+1)
原创
2021-06-22 17:02:17
724阅读
数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。1.1常用的数据结构编辑在计算机科学的发展过程中,数据结构也随之发展。程序设计中常用的数据结构包括如下几个。 [5]数组(Array)数组是一种聚合数据类型,它是将具有相同类型的若干变量有
转载
2023-09-01 18:24:16
96阅读
数据库索引数据结构总结摘要数据库索引是数据库中最重要的组成部分,而索引的数据结构设计对数据库的性能有重要的影响。本文尝试选取几种典型的索引数据结构,总结分析,以窥数据库索引之全貌。B+TreeB+Tree 是一种树数据结构,是一个n叉排序树,每个节点通常有多个孩子,一棵B+Tree包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。B+Tree
转载
2024-04-28 21:45:50
12阅读
今天我们来学一下数据结构方面的知识,对扎实 Java 的基本功非常有用,学会了就会有一种自带大佬的感觉,嘿嘿。数据结构,也就是 Data Structure,是一种存储数据的结构体,数据与数据之间存在着一定的关系,这样的关系有数据的逻辑关系、数据的存储关系和数据的运算关系。在 Java 中,数据结构一般可以分为两大类:线性数据结构和非线性数据结构。哈哈,这个非字很有灵魂吧
转载
2023-07-12 12:00:06
193阅读
1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列。2.java的堆和数据结构堆:java的堆是程序员用new能得到的计算机内存的可用部分。而数据结构的堆是一种特殊的二叉树。3.堆是具有如下特点的二叉树: 3.1.它
转载
2023-06-04 19:41:42
271阅读
一、数据结构1、基本概念(1)数据——描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别并输入给计算机处理的符号集合 。(2)数据元素——组成数据的、有一定意义的基本单位,在计算机中通常被当作整体处理。(3)数据项——一个数据元素可以由若干个数据项组成。比如,人可以有鼻子、眼睛、耳朵等数据项,也可以有姓名、年龄、性别等数据项。(4)数据结构——相互之间存在一种或多种特定关系的数据元素的集
转载
2023-07-07 21:47:33
115阅读
链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个节点里存放的是下一个节点的“指针”。在Java中的数据分为引用数据类型和基础数据类型,在Java中不存在指针的概念,但是对于链表而言的指针,指的就是引用数据类型的地址。 链表和数组都是线性的数据结构,对于数组而言其长度是固定的,由于在内存中其是连续的,因此更适合做查找与遍历,而
转载
2023-05-18 23:00:50
86阅读
栈是Java语言中最重要的数据结构之一,它的实现,至少应该包括以下几个方法:1,pop() 出栈操作,弹出栈顶元素。 2,push(E e) 入栈操作 3,peek() 查看栈顶元素 4,isEmpty() 栈是否为空 另外,实现一个栈,还应该考虑到几个问题:1,栈的初始大小以及栈满以后如何新增栈空间 2,对栈进行更新时需要进行同步 简单示例,使用数组实现栈,代码如下:public
转载
2023-07-11 11:32:05
43阅读
第1章 当我们谈论算法的时候,我们在谈论什么?1-1 我们究竟为什么要学习算法为什么要学习算法?大公司面试? 因为算法无处不在IDE搜索引擎 搜索算法+排序算法Siri 语音算法推荐算法电影后期迷宫生成扫雷电脑AI计算机视觉ARPS 魔棒工具压缩软件数据库 算法库我们每天都在接触算法学好算法,才能创造出更有意义的东西算法之美1-2 课程介绍学习要求语言:C++拥有自己的编程环境算法其实是和语言无
转载
2023-08-25 16:40:54
130阅读
JAVA和C语言的比较1. 数据类型:共同点:数据类型决定了内存中存储数据的类型及所需内存的大小。都满足自动类型转换和强制类型转换。都通过定义变量来申请数据存储空间,并通过变量名获取或改变存储的值。常量是值不可变的变量,即不能重新赋值。不同点:Java:Java的数据类型可分为两大类:基本数据类型:byte、short、int、long、double、float、boolean、char引用数据类
转载
2023-06-28 20:06:52
220阅读
一、线性表
1.数组实现
2.链表
二、栈与队列
三、树与二叉树
1.树
2.二叉树基本概念
3.二叉查找树
4.平衡二叉树
5.红黑树一、线性表线性表是最常用且最简单的一种数据结构,它是n个数据元素的有限序列。实现线性表的方式一般有两种,一种是使用数组存储线性表的元素,即用一组连续的存储单元依次存储线性表的数据元素。另一种是使用链表存储线性表的元素,即用一组任意的存储
转载
2023-06-20 10:49:24
84阅读
上篇博客对链表的结构进行了代码实现,今天让我用java代码带大家了解二叉树的实现原理。 首先大家对二叉树的结构都应该了解,二叉树是由节点构成的,每个节点最多有两个字节点,称为左子节点和右子节点,还有parent父节点。 今天的demo注释写的非常清楚,希望有兴趣的可以跟着注释来看,如果有不懂 的可以在下方评论,我会及时回复。节点的定义class Node{
private T
转载
2023-11-14 09:16:04
42阅读
利用Java语言实现简单的数据结构,Java中动态扩容的ArrayList,LinkedList,Stack,Queue以及二叉树1.ArrayListimport java.util.Arrays;
import org.junit.Test;
public class ArrayList implements List {
private int size = 0;
private
转载
2023-05-26 16:33:12
70阅读
第10章:树结构基础1、树结构数组:优点:通过下标方式访问元素,速度快。对于有序数组还可以使用二分查找提高检索速度缺点:如果要检索具体某个值,或者插入值(按一定顺序)会移动整体,效率较低。链表:优点:插入一个数值,只需要将插入节点链接到链表中,删除效率也很好缺点:在进行检索时,效率低,需要从头节点开始遍历树:提高数据存储,读取的效率树的示意图2、二叉树每个节点最多只能有两个子节点,左节点,右节点满
转载
2023-07-19 21:54:05
63阅读
java中集合框架其实就是数据结构的实现的封装;1,什么是数据结构?数据结构是计算机存储,组织数据的方式;数据结构是指相互之间存在一种或多种特定关系的数据元素的集合;通常情况下,精心选择的数据结构可带来更高的运行或者存储效率,数据结构往往同高效的检索算法和索引技术有关; 2,数据结构的基本功能增(Create) 删(Delete) 改(Update)
转载
2023-08-25 12:40:07
93阅读
一、数据结构概念 数据结构包含数据和结构,通俗一点就是将数据按照一定的结构组合起来,不同的组合方式会有不同的效率,使用不同的场景,如此而已。比如我们最常用的数组,就是一种数据结构,有独特的承载数据的方式,按顺序排列,其特点就是你可以根据下标快速查找元素,但是因为在数组中插入和删除元素会有其它元素较大幅度的便宜,所以会带来较多的消耗,所以因为这种特点,使得数组适合:查询比较频繁,增、删比较少的情况
转载
2024-02-29 11:14:46
28阅读
Java实现数据结构 ---- 线性结构一、顺序表 顺序表本质是使用数组储存数组的一种数据结构,在计算机的储存中是连续的分配内存的。 下面是我自己使用java实现的简单顺序表结构package list;
public class MyArrayList<E> {
private Object[] data; //数据
private int length; //目
转载
2023-08-02 23:26:10
66阅读
堆数据结构中的堆是一种特殊的二叉树,不同于 Java 内存模型中的堆。堆必须符合以下两个条件:是一棵完全二叉树。任意一个节点的值都大于(或小于)左右子节点的值。从第一点可以知道,堆适合用数组来存储。第二点中,若父节点都大于等于左右子节点,则被称为大顶堆,反之则为小顶堆。如图,为一个大顶堆,注意:堆首先得符合完全二叉树的特点,否则不是堆。堆的实现方案【下面代码均以大顶堆为例】堆的存储完全二叉树采用数
转载
2024-02-04 14:37:42
19阅读