数据结构专栏
文章平均质量分 84
劲夫学编程
扬州大学软件工程在读研究生
C语言学习在《C语言快速入门》和《C语言考研重置版》,个人建议看考研重置版,讲的更详细
数据结构详解在《数据结构专栏》
数据结构代码在《数据结构代码汇总》
JAVA学习在《JAVA快速入门》和《java EE》
读者可自行查看作者专栏,与君共同进步
展开
-
考研数据结构:第八章 排序
本文详细介绍了数据结构中的插入排序、冒泡排序、堆排序、选择排序、归并排序,相信对你的学习一定有所帮助原创 2023-08-23 22:11:51 · 541 阅读 · 0 评论 -
考研数据结构:第七章 查找
本文详细介绍了考研和工作中需要用到的八大查找,顺序查找、折半查找、分块查找、树形查找、散列表。相信学完本文,你一定有所收获!原创 2023-08-14 19:01:59 · 409 阅读 · 0 评论 -
考研数据结构:第六章 图
本文详细介绍了数据结构关于图的各个考点:图的定义、存储、邻接矩阵、邻接表、图的基本操作。还有图的遍历中的广度优先遍历与深度优先遍历。在图的应用中,也着重介绍了最小生成树、BFS算法、Dijkstra算法、Floyd算法,还有拓扑排序和关键路径。相信学完本文,你对数据结构“图”能够有更深刻的理解原创 2023-07-30 17:18:16 · 1218 阅读 · 3 评论 -
考研数据结构:第五章 树
本文将介绍数据结构中的重要考点——树。读者可由本文学习到树的各种概念、二叉树的概念、存储、遍历。线索二叉树、森林、哈夫曼树等等知识点。原创 2023-07-14 15:28:16 · 977 阅读 · 0 评论 -
考研数据结构: 第四章 串
所谓串其实就是字符串,该小节我们会先学习串的定义和相关基本操作。也就是要探讨它的逻辑结构和基本运算(数据结构三要素:逻辑结构、存储结构、数据的运算)串,即字符串(String)是由零个或多个字符组成的有序序列。一般记为S=‘a1a2…an’(n>=0)其中,S是串名,单引号括起来的字符序列是串的值,ai可以是字母、数字或者其他字符串,串中字符的个数n称为串的长度。n=0时的串称为空串。ps:不同的编程语言对字符串的引号规定不同,java和c是双引号,python是单引号。原创 2023-05-27 09:59:52 · 1512 阅读 · 0 评论 -
考研数据结构:第三章 栈、队列和数组
本文对数据结构的栈、队列、数组进行了详细介绍,不管是期末复习还是考研或是找工作,相信一定对你有帮助原创 2023-05-05 15:55:47 · 1637 阅读 · 2 评论 -
考研数据结构:第二章 线性表
我们在学习数据结构时,需要关注数据结构的三个方面:逻辑结构、物理结构和数据的运算。该小节中,我们首先要介绍线性表的定义和基本操作,其实就是要探讨这种数据结构它的逻辑结构是怎样的,我们要对这种数据结构实现哪些基本运算,也就是所谓的基本操作。在之后的小节中,我们还会探讨如何使用不同的存储结构来实现线性表。ps:当采用不同的存储结构时,对于数据的运算的具体实现也会不同,这点我们后面会用具体的代码帮助大家进行理解。什么是线性表?原创 2023-03-29 20:48:58 · 847 阅读 · 2 评论 -
考研数据结构:第一章 绪论
本文为笔者学习王道数据结构的笔记,将来会不定期更新,希望与大家共同进步。关于王道计算机考研大家可以去mooc官网订阅,支持正版!王道链接提示:以下是本篇文章正文内容,下面案例可供参考对于计算机来说,数据结构就是给它提供要加工的食材,算法就是描述了这个计算机要如何处理这些食材,描述了具体的步骤举个具体的例子:将下列线性表按年龄递增排序。原创 2023-03-23 17:47:02 · 523 阅读 · 4 评论 -
java枚举详解
文章目录一、背景与定义二、枚举的使用2.1switch语句2.2常用方法2.3枚举的构造方法是默认的三、枚举的优缺点总结提示:以下是本篇文章正文内容,下面案例可供参考一、背景与定义枚举是在JDK1.5以后引入的。主要用途是:将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式:public static int final RED = 1;public static int final GREEN = 2;public static int final BLACK = 3;但.原创 2022-03-02 22:43:46 · 451 阅读 · 0 评论 -
java反射详解
文章目录一、定义二、反射基本信息三、反射相关的类3.1class类3.2反射示例3.2.1 获得Class对象的三种方式3.2.2 反射的使用四、反射的优缺点五、重点总结提示:以下是本篇文章正文内容,下面案例可供参考一、定义Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到这些,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflec.原创 2022-03-02 16:55:32 · 340 阅读 · 0 评论 -
java Lambda表达式详解
文章目录一、背景1.1语法二、使用步骤1.引入库2.读入数据总结提示:以下是本篇文章正文内容,下面案例可供参考一、背景Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda 表达式(Lambda expression)可以看作是一个匿名函数,基于数学中的λ演算得名,也可称为闭包(Closure) 。换.原创 2022-02-28 23:11:21 · 8810 阅读 · 2 评论 -
超详细--java哈希表精讲
文章目录一、概念二、冲突概念三、冲突避免3.1哈希函数设计3.2负载因子调节(重点)四、冲突解决4.1闭散列4.2开散列/哈希桶(重点)4.3冲突严重的解决办法五、代码实现及性能分析后记提示:以下是本篇文章正文内容,下面案例可供参考一、概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( log2N),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比.原创 2022-02-24 22:15:47 · 1469 阅读 · 6 评论 -
java二叉搜索树详解
文章目录一、概念二、相关操作1.查找2.插入2.删除实现提示:以下是本篇文章正文内容,下面案例可供参考一、概念二叉搜索树又称二叉排序树它或者是一棵空树,或者是具有以下性质的二叉树:1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3.它的左右子树也分别为二叉搜索树(图片来自比特就业课)二、相关操作1.查找(图片来自比特就业课)代码如下(示例):2.插入代码如下(示例):2.删除实现....原创 2022-02-21 21:06:07 · 2208 阅读 · 8 评论 -
前中后缀表达式互相转换,及实战例题
前中后缀表达式及例题原创 2022-02-17 17:19:38 · 5465 阅读 · 3 评论 -
java归并排序详解
归并排序原创 2022-02-08 22:12:39 · 656 阅读 · 4 评论 -
java快速排序详解
快速排序详解原创 2022-02-07 21:19:37 · 2097 阅读 · 0 评论 -
把二叉搜素树转成有序双向链表
文章目录一、题目描述二、二叉搜索树特点及解题思路三、代码实战一、题目描述题目描述:二、二叉搜索树特点及解题思路1.每个节点都比它的左节点大,比它的右节点小2.二叉搜索树的中序遍历是有序的比如:该数中序遍历:1345678,然后转换成双向链表,也就是按顺序把各个节点互相连起来,示意图如下:那么这里很容易发现,left变成了双向链表的前驱,right变成了双向链表的后继,我们在中序遍历的过程中,需要修改每个节点的left和right,最后我们返回节点1即可。三、代码实战publi.原创 2022-01-21 18:01:26 · 719 阅读 · 0 评论 -
Java力扣刷题——二叉树oj题整理
二叉树oj题原创 2022-01-20 16:32:01 · 913 阅读 · 0 评论 -
Java二叉树基础操作常见代码例题
二叉树常见基础操作代码详解原创 2022-01-18 21:03:42 · 881 阅读 · 0 评论 -
详解java用队列实现栈,原理+代码
java用队列实现栈原创 2022-01-16 18:42:47 · 634 阅读 · 2 评论 -
java不用usedSize实现循环队列
代码示例如下://数组实现循环队列——看成一个环形public class MyCircularQueue { public int[] elem; public int front;//队头下标 public int rear;//队尾下标 public MyCircularQueue(int k){//初始化——这种初始化是不用usedSize的方法,你如果用usedSize,下面还是new int[K] this.elem=new int[k+1];原创 2022-01-16 17:15:21 · 291 阅读 · 0 评论 -
java集合框架及背后的数据结构
java集合框架及背后的数据结构原创 2022-01-02 15:01:07 · 110 阅读 · 0 评论 -
数据结构-栈和队列精讲
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-10-02 11:04:14 · 596 阅读 · 3 评论 -
数据结构-带头循环双向链表详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、什么是带头循环双向链表二、使用步骤1.引入库2.读入数据总结前言上一篇数据结构专栏,我们介绍了单链表的各个接口函数,大家可能会发现单链表存在一些缺陷:比如它一个节点要存储数据+下一个节点地址,占用的空间要远多于顺序表;并且由于单链表是无法从后往前找的,如果你想进行尾删这样的操作,你必须从第一个节点往后找,你的时间复杂度一定是O(n)。为了解决上面的一些缺陷,我们今天来介绍带头双向循环链表提示:以下是本篇文章正文内容原创 2021-09-27 09:49:53 · 571 阅读 · 4 评论 -
数据结构-一文精通单链表的所有接口函数!
文章目录前言一、链表的概念及结构1.1概念二、使用步骤1.引入库2.读入数据总结前言上一期数据结构专栏我们学习了顺序表后,在运用时,细心的同学可能会发现,如果要头插、尾插或者任意位置。如果原先的空间已经被占满了,你是需要扩容的,动态链表扩容往往是2倍,但是扩容后,如果后面没有使用完全扩容后空间就会造成空间浪费,为了解决这个问题,我们今天将学习链表。提示:以下是本篇文章正文内容,下面案例可供参考一、链表的概念及结构1.1概念链表是一种物理存储结构上的非连续。非顺序的存储结构,数据元素的逻辑顺.原创 2021-09-16 09:56:21 · 301 阅读 · 8 评论 -
最简单+最重要的数据结构-顺序表精讲
文章目录前言一、线性表定义二、顺序表实现2.1概念及结构2.2对顺序表的增删查改的接口函数总结前言本文主要介绍线性表的定义和用法。提示:以下是本篇文章正文内容,下面案例可供参考一、线性表定义线性表(line list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表有:顺序表、链表、栈、队列、字符串。线性表在逻辑上是线性结构,也就是说是连续的一条直线。但在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储二、顺序表.原创 2021-09-13 23:59:59 · 278 阅读 · 4 评论 -
数据结构-用大白话讲清楚时间复杂度和空间复杂度
文章目录前言一、时间复杂度和空间复杂度是什么?1.1算法效率定义1.2时间复杂度概念1.3空间复杂度概念二、如何计算常见算法的时间复杂度和空间复杂度2.1引例2.2快速推倒大O渐进表达法三、一些特殊的情况总结前言我们在进行编程时,往往会开发诸多的算法,那么我们怎么在那么多算法中找到最好的那个呢?这便是我们今天的学习,时间复杂度和空间复杂度。提示:以下是本篇文章正文内容,下面案例可供参考一、时间复杂度和空间复杂度是什么?1.1算法效率定义算法效率分为两种,一种是时间效率——时间复杂度,另一种.原创 2021-09-06 22:15:15 · 708 阅读 · 3 评论