![](https://img-blog.csdnimg.cn/428e8245fe7b4dbf92aadf56ce1d35e0.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 74
内功心法,十分强大!
South.return
https://blog.csdn.net/m0_53620413
展开
-
七大排序算法
冒泡排序排序原理排序图解 代码实现 for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]..原创 2022-01-22 15:45:58 · 706 阅读 · 2 评论 -
【数据结构】——图
图的定义和基本术语概述:一种复杂的非线性结构,结点之间的关系可以是任意的,图中任意两个元素之间都可能相关。图由两个集合V、E组成,定义为G=(V, E),其中V是顶点的有限非空集合,E是由V中顶点偶对表示的边的集合。顶点集 V(G),边集 E(G)。E(G)可以为空集,只有顶点没有边。有向图概述:每条边都是有方向的图 一条有向边是由两个顶点组成的有序对,用尖括号表示<> <v(i),v(j)>表示一条有向边,此边称为顶点v(i)的一条出边,顶点v(j)的一..原创 2021-11-17 16:34:13 · 1433 阅读 · 3 评论 -
【数据结构】——树、森林、哈夫曼树
目录树的存储结构双亲表示法孩子链表示法孩子兄弟表示法树、森林与二叉树的转换树、森林转为二叉树二叉树转为树、森林树和森林的遍历哈夫曼树树的存储结构双亲表示法概述:在树结构中,每个结点的双亲是唯一的。假设以一组连续空间来存储树的结点,同时为每个结点附设一个指向双亲的指针parent,就可唯一地表示一棵树。图示:孩子链表示法概述:树中每个结点可能有多棵子树 (即多个孩子),因此可以把每个结点的孩子结点看成一个线性表,并以单链表结构存储其孩子原创 2021-11-16 15:53:25 · 2396 阅读 · 1 评论 -
【数据结构】——树和二叉树
树 (Tree)树形结构:非线性数据结构,结点之间具有明确的层次关系,并且结点之间有分支,是一个递归结构。定义:n(n≥0)个结点的有限集T。任意一棵非空树:有且仅有一个特定的称为根 (Root) 的结点 当n>1时,其余的结点可分为m(m>0)个互不相交的有限集T1,T2,...,T(m),其中每个集合本身又是一棵树,称为根的子树树的表示法:树形表示、嵌套集合表示、凹形表表示、广义表表示。基本术语 对照上述的树 介绍各个基本术语 ..原创 2021-11-15 19:48:27 · 2173 阅读 · 5 评论 -
【数据结构】——多维数组和广义表
多维数组二维数组矩阵表示数组的顺序存储按行优先:将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。a00, a01, a02 ... a(m-1)(n-1) 按列优先:将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量之后。a00, a10, a20 ... a(m-1)(n-1)计算数组元素的存储地址要知道:开始存储的结点地址(基地址)、维数和每维的上 下界、每个元素所占用的单元数。每个元素占d个存储单元 数组元素a(ij),位于第i行,第j..原创 2021-11-10 21:16:26 · 1556 阅读 · 1 评论 -
【数据结构】——队列 (链队列和基于Java的运算实现)
目录链队列基本运算实现链队列概述:一种限制在表头删除和表尾插入操作的单链表。图示:基本运算实现//链表结点类public class QueueNode { //数据域 private Object data; //指针域 private QueueNode next; public QueueNode() { } public QueueNode(Object data, QueueNode next)原创 2021-11-09 20:07:40 · 5220 阅读 · 17 评论 -
【数据结构】——队列 (循环队列和基于Java的运算实现)
目录队列顺序循环队列基本运算实现队列概述:只允许在表的一端进行元素插入,在另一端进行元素删除,允许插入的一端称为队尾(rear),允许删除的一端称为队头(frout)。先进先出(First In First Out),简称FIFO图示:顺序循环队列概述:两个指针frout和rear分别指示队头和队尾元素在表中的位置,它们的初值在队列初始化时置为0。图示:判队列是"空"还是"满":设一个标志位,来区别队列是"空"还是"满" 设置一个计数器记录.原创 2021-11-08 19:54:48 · 1237 阅读 · 13 评论 -
【数据结构】——栈 (链栈和基于Java的运算实现)
目录链式存储 (链栈)基本运算实现栈的应用举例圆括号匹配检验字符串回文的判断数制转换链式存储 (链栈)概述:插入和删除限制在表头位置(栈顶)进行,将单链表的头指针head改为栈顶指针top即可。图示:基本运算实现//链表结点类public class Node { //数据域 private Object data; //指针域 private Node next; public Node() { .原创 2021-11-05 21:12:47 · 788 阅读 · 21 评论 -
【数据结构】——栈 (顺序栈和基于Java的运算实现)
目录栈顺序存储 (顺序栈)基本运算实现溢出问题栈概述:在表的一端进行插入和删除,插入删除的一端称为栈顶(top),另一端为栈底(bottom),不含元素的空表称为空栈。后进先出 (Last In First Out),简称LIFO图示:顺序存储 (顺序栈)概述:栈的顺序存储结构,是运算受限的线性表,用数组实现的。S.data[0]是栈底元素,S.data[top]是栈顶元素 S.top<0表示空栈,S.top=StackSize-1表示栈满.原创 2021-11-04 20:22:02 · 289 阅读 · 4 评论 -
【数据结构】——链表 (链式存储和基于Java的运算实现)
单链表 (线性链表)概述:链式存储表示每个数据元素a[i]时,除了存储a[i]本身信息之外,还需要一个存储指示其后继元素a[i+1]存储位置的指针。包括两个域:存储数据元素的域称为数据域,存储直接后继存储地址的域称为指针域。空链表:head=NULL原创 2021-11-03 14:32:27 · 632 阅读 · 10 评论 -
【数据结构】——线性表 (顺序存储和基于Java的运算实现)
线性表的定义概述:由n个数据元素(结点)a1,a2,a3...a[n]组成的有限序列,数据元素个数 n为表的长度,n为零时称为空表。非空线性表逻辑特征:有且仅有一个开始元素a1,它没有前趋,仅有一个直接后继a2 有且仅有一个终端元素a[n],它没有后继,仅有一个直接前趋 其余元素a[i](2≤i≤n-1)称为内部元素,它们都有且仅有一个直接前趋a[i-1]和一个直接后继a[i+1]...原创 2021-11-02 10:46:38 · 1019 阅读 · 26 评论 -
【数据结构】——概论
目录前言概论算法数据结构重点前言博主在大一学过数据结构(C语言版),现在大四都忘的差不多了,但是当年老师苦口婆心的提醒该课程重要的场景还历历在目。不得不说当年还是太年轻,没有能力去吃透这本内功心法,现在有了一些底子再一次接触就有一种陌生的熟悉感。不管怎样上天再给了我一次机会,让我能够有机会去学习,话不多说,一起来领略数据结构的魅力吧!概论算法+数据结构=程序算法:对数据运算的描述。数据结构:逻辑结构和存储结构。程序设计的实质:针对实际...原创 2021-11-01 19:59:53 · 806 阅读 · 2 评论 -
二叉树的定义和性质
目录二叉树的定义二叉树的性质性质1 在二叉树的第i层上至多有 2^(i-1)个结点。(i≥1)性质2深度为k的二叉树至多有2^(k)-1个结点。(k≥1)性质3对任何一棵二叉树T,若其终端结点数为n0,度数为2的结点数为n2,则n0=n2+1。性质4具有n个结点的完全二叉树的深度为[log n]+1 或 log(n+1)。二叉树的定义概述:所有结点的度都只为0、1、2的树,就是二叉树。定义:二叉树 (Binary Tree)是 n(n≥0)个结点的...原创 2021-10-22 23:46:15 · 3399 阅读 · 12 评论