自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 函数栈帧的创建和销毁(C语言)

函数栈帧的创建和销毁(C语言)

2023-02-12 22:41:25 658 2

原创 树形结构(3)(Java语言)——二叉树(2)

树形结构(3)(Java语言)——二叉树(2)

2022-02-08 15:36:51 851 12

原创 树形结构(2)(Java语言)——二叉树(1)

二叉树(1)

2022-02-07 13:41:53 1399 16

原创 树形结构(1)(Java语言)——树的基本概念

树的基本概念前言树形结构树的概念树的特点树的其他概念(重要)树的表现形式树的应用前言前面的学习中,我们了解了顺序表,栈,队列等。这些都属于线性结构,就像一根线一样串起来,而接下来我们要学习高阶的数据结构。首先我们接触的是树,由于树的知识相对较多,我们分成几篇博客进行介绍。树形结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树的特点树具有以下的特点:有一个特殊的结点

2022-01-24 15:43:58 3216 3

原创 Queue与队列(Java语言)

Queue与队列(Java语言)

2022-01-23 22:14:05 612 9

原创 Stack与栈(Java语言)

Stack与栈(Java语言)

2022-01-22 22:28:47 622 13

原创 VS编译器常见的问题

VS编译器常见的问题VS2013控制台一闪而过三级目录scanf函数报错新建多个源文件出错

2022-01-12 12:51:52 3739 14

原创 ArrayList与顺序表(Java语言)

ArrayList顺序表,泛型,包装类

2022-01-10 14:40:25 1423 14

原创 认识异常(Java语言)

认识异常(Java语言)

2022-01-05 00:32:23 392 13

原创 字符串String类(Java语言)

字符串String类(Java语言)

2022-01-03 23:20:18 533 8

原创 图书管理系统(Java语言)

图书管理系统(Java语言)

2022-01-01 21:35:53 1782 5

原创 每日一题(9)——数据结构(LeetCode)

每日一题(9)——数据结构(LeetCode)题目代码题目解析题目给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例1:输入: [1,2,3,1]输出: true示例2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true代码代码1:public boolean containsDuplicate(int

2021-12-14 10:58:11 857 7

原创 每日一题(8)——数据结构(LeetCode)

每日一题(8)——数据结构(LeetCode)题目代码题目解析题目给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例2:输入:head = [0]输出:0示例3:输入:head = [1]输出:1示例4:输入:head = [1,0,0,1,0,0,1,1,

2021-12-13 18:08:28 371 1

原创 每日一题(7)——数据结构(LeetCode)

每日一题(7)——数据结构(LeetCode)题目代码解题思路题目给你单链表的头指针head和两个整数left和right,其中left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例2:输入:head = [5], left = 1, right = 1输出:[5]代码public ListNode revers

2021-12-12 12:12:39 411 2

原创 面向对象编程(Java语言)

面向对象编程(Java语言)前言包导入包中的类静态导入将类放到包中包的访问权限控制常见的系统包继承前言这篇博客的目的就是帮助我们进入面向对象编程的核心部分,是非常重要的语法部分。我们常常将面向对象这种编程思想挂在嘴边,却不知道到底什么是面向对象,希望这篇博客能够给你帮助。包包 (package) 是组织类的一种方式。使用包的主要目的是保证类的唯一性。什么意思呢?例如, 你在代码中写了一个 Test 类. 然后你的同事也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致代码不能编译通

2021-12-11 20:01:45 569 1

原创 每日一题(6)——数据结构(LeetCode)

每日一题(6)——数据结构(LeetCode)题目代码解题思路题目给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例2:输入:head = [0,1,2], k = 4输出:[2,0,1]代码代码1: public ListNode rotateRight(ListNode head, int k) { if (head ==

2021-12-11 14:11:48 362

原创 每日一题(5)——数据结构(LeetCode)

每日一题(5)——数据结构(LeetCode)题目代码题目解析题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例2:输入:head = []输出:[]示例3:输入:head = [1]输出:[1]代码public ListNode swapPairs(ListNode head) { if (h

2021-12-10 12:40:14 403 1

原创 每日一题(4)——数据结构(LeetCode)

每日一题(4)——数据结构(LeetCode)题目代码题目解析题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例2:输入:head = [1], n = 1输出:[ ]示例3:输入:head = [1,2], n = 1输出:[1]代码解法1: public ListNode removeNthFromEnd(ListNode head, int n

2021-12-09 12:03:29 393 3

原创 每日一题(3)——数据结构(LeetCode)

每日一题(3)——数据结构(LeetCode)题目代码题目解析题目给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807示例2:输入:l1 = [0], l2 = [0]输出:[0]示例3:输入:l1 = [9,9,9,9,9,9,9], l2 =

2021-12-08 11:27:29 345

原创 每日一题(2)——数据结构(LeetCode)

LeetCode每日一题(2)——数据结构题目代码题目解析题目请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。示例1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9示例2:输入:head = [4,5,1

2021-12-07 11:06:30 228 1

原创 链表之无头双向非循环链表(Java语言)

无头双向链表(Java语言)前言介绍无头双向非循环链表节点类——ListNode链表类——MyLinkedList打印链表得到链表的长度查找是否包含关键字key插入一个元素——头插法插入一个元素——尾插法插入一个元素——任意位置插入寻找index位置的节点删除第一次出现key的节点删除所有key的节点清空链表总代码前言经过对于顺序表和单链表的熟悉我们已经对于数据结构有了简单的认识,这次我们了解无头双向链表的相关知识。介绍首先我们先看一下双向链表的结构:这就是一个非常简单的双向链表,一个节点可以找

2021-12-06 20:56:26 807

原创 每日一题(1)——数据结构(LeetCode)

LeetCode每日一题(1)——数据结构题目代码解题思路题目存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例1:输入:head = [1,1,2]输出:[1,2]示例2:输入:head = [1,1,2,3,3]输出:[1,2,3]代码public ListNode deleteDuplicates(ListNode head) { if (head == nul

2021-12-06 15:22:08 527 2

原创 链表的提升学习Java语言(在线OJ面试题)

链表的提升学习Java语言(在线OJ面试题)第一道题二级目录三级目录第一道题二级目录三级目录

2021-12-05 20:04:14 573

原创 链表之无头单向非循环链表(Java语言)

链表(Java语言)前言链表的概念及结构无头单向非循环链表节点类——ListNode链表类——MyLinkedList打印链表查找是否包含关键字获取链表的长度(节点的个数)插入一个节点——头插法前言上篇博客中介绍了顺序表有关的知识,我们知道顺序表增加,删除某个元素都需要移动其他元素,增加了时间复杂度;顺序表空间不够用又需要我们进行扩容,导致可能造成空间上的浪费,增加了空间复杂度,因此有必要优化顺序表,因此我们引入链表的概念。链表的概念及结构链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是

2021-11-21 09:11:37 655 1

原创 顺序表(Java语言)

顺序表和列表(Java语言)前言线性表顺序表概念及结构前言当我们接触到顺序表与列表时,就涉及到了数据结构的知识,顺序表和列表是数据结构最为基础的部分,所谓数据结构就是存储数据的方式,有同学会问C语言数据结构和Java语言数据结构有什么不同?其实没有不同,数据结构是一门单独的学科,就好比C语言是中文,Java是英文,数据结构是数学,我们可以用英文表达数学的逻辑结构,也可以用中文表达数学的逻辑结构,所以数据结构也是如此。线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性

2021-11-17 00:58:11 2338 3

原创 时间复杂度和空间复杂度

时间复杂度和空间复杂度算法效率时间复杂度时间复杂度的概念空间复杂度算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。时间复杂度时间复杂度的概念时间复杂度的

2021-11-15 18:50:35 486

原创 封装和构造方法(Java语言)

Java语言封装什么是封装private实现封装使用public使用privategetter和setter方法构造方法基本语法语法规则this关键字封装什么是封装在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者。封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了。这样就降低了类使用者的学习和使用成本, 从而降低了复杂程度。private实现封装private/ public 这两个关键字表示 “访问权限控制”。被 public 修饰的

2021-11-12 19:42:58 949

原创 类和对象(Java语言)

类和对象(Java语言)前言面向过程编程和面向对象编程类和类的实例化类类的实例化前言接触到了类和对象,就是真正Java核心的地方了,也是重难点。那么我们一直会有疑问什么是类?什么是对象呢?这篇博客将会给予我们答案。面向过程编程和面向对象编程了解类和对象我们就需要理解面向过程和面向对象编程的区别所在,以洗衣服为例:如果是面向过程,那么就是先拿盆->防水->放衣服->放洗衣粉->手搓->换水->手搓->拧干->晾衣服。如果是面向对象,通过洗衣

2021-11-12 15:32:29 816

原创 数组的定义与使用(Java语言)

数组的定义与使用(Java语言)数组的基本用法1.1什么是数组二级目录三级目录数组的基本用法1.1什么是数组二级目录三级目录

2021-11-08 20:31:47 688

原创 汉诺塔问题(Java语言)

汉诺塔问题(Java语言)题目解析代码实现题目大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?汉诺塔的问题是一个非常经典的问题了,那么我们该如何解决这个问题呢?解析这类问题往往需要我们化大为小,就是说将大的问题化成小问题。首先我们建三个柱子,分别为A,B,C。有1个盘子:解决方法:A

2021-10-27 20:33:36 112

原创 青蛙跳台阶问题(Java语言)

青蛙跳台问题(Java语言)题目解析代码实现题目一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法?解析这类题目乍一看简单易懂,但是给人一种无从下手的感觉,既然如此,我们先举一些简单的例子:当只有1级台阶时(当n=1):青蛙只需要跳一节台阶就可以了,因此只有一种跳法。当只有2级台阶时(当n=2):青蛙有两种跳法:1+1(第一种,黑色线),2(第二种,红色线)。当有3级台阶时(当n=3):青蛙有3种跳法:1+1+1(第一种,黑色线),2+

2021-10-27 15:03:09 1003 1

原创 方法的使用(Java语言)

方法的使用(Java语言)前言方法的基本用法方法定义语法实参和形参的关系没有返回值的方法方法的重载三级目录前言方法顾名思义就是解决问题的办法,在C语言中,我们将方法称作函数,因此我们可以将Java中的方法理解成C语言中的函数,那么方法存在的意义是什么呢?举个例子:现在有个同学A问老师:如何下载JDK?如何环境配置?如何下载IDEA?老师说:先这样,再那样,然后这样,最后那样,就可以了。之后又来一个同学B问同样的问题,老师又说了一边,老师发现这样很费事,就在CSDN上写了一个博客,同学C又来问同样的问题

2021-10-27 13:49:44 153

原创 输入输出(Java语言)

输入输出(Java语言)前言输出到控制台System.out.println();System.out.print();System.out.printf();格式化字符串从键盘输入前言在C语言中,输入输出是比较简单的,我们都知道用printf()函数表示输出,scanf()表示输入,当然要引入头文件<stdio.h>的头文件,但是在Java语言中输入输出要复杂的多那么这次就专门为Java语言输入输出写一个博客。输出到控制台System.out.println();这个是最常见的输出,

2021-10-24 14:12:10 1781

原创 逻辑控制(Java语言)

逻辑控制(Java语言)前言顺序结构分支结构(选择语句)循环结构前言所有的代码都是用逻辑结构进行控制的,逻辑控制包括:顺序结构,分支结构,循环结构。我们在C语言已经系统学习过了,这次的Java我们会从Java的角度进行了解。顺序结构顺序结构是最简单的逻辑结构,是每个代码中都会有的,举个例子:public static void main(String[] args) { System.out.println(1); System.out.println(2);

2021-10-22 22:30:22 168 1

原创 运算符(Java语言)

运算符(Java语言)算数运算符除法——/取余——%关系运算符逻辑运算符逻辑与——&&逻辑或——||非——!短路位运算符按位与——&按位或——|按位异或——^按位取反——~移位操作符左移操作符——<<右移操作符——>>无符号右移——>>>条件运算符算数运算符我们所熟知的算数运算符包括:+,-,*,/,%,运算规则比较简单,值得注意的是除法除法——/举个例子:public static void main(String[] args)

2021-10-20 18:17:56 112

原创 初始Java和 数据类型(Java语言)

初始Java(Java语言引言第一个Java语言程序二级目录三级目录引言经过C语言学习我们简单了解了程序语言,那么C语言的学习告一段落,但是C语言提高需要我们不断的练习,那么接下来我们要进行Java语言的学习了。第一个Java语言程序public class HelloWorld{ public static void main(String[]args){ System.out.println("hello"); }}我们可以发现Java的main方法比C语言的main函数要复杂的多

2021-10-18 19:51:08 115 1

原创 程序的执行过程(C语言)

程序的编译和预处理操作(C语言)总述预编译#define编译汇编链接总述在ANSI C的任何一种实现中,存在两个不同的环境。一种是翻译环境,第二种是执行环境。我们代码实现需要经过两种大的步骤——编译和运行。以C语言程序为例,我们写完代码后,需要经过编译和运行才能完成整个过程,而编译又包含4个步骤,分别为:预编译,编译,汇编,链接。当连接完成后,就可以执行运行操作。预编译预处理操作简单的解释就是我们在进行编译(总过程)中进行的准备过程,举个例子,我们在床上准备吃午饭,我们需要做好穿衣服的准备工作才可以

2021-10-15 13:08:37 2516 3

原创 文件操作(C语言)

文件操作(C语言)为什么使用文件什么是文件三级目录为什么使用文件什么是文件三级目录

2021-10-08 16:32:43 167 1

原创 动态内存管理(C语言)

动态内存管理(C语言)为什么存在动态内存分配动态内存函数的介绍malloc()函数——申请空间free()函数——释放空间calloc——申请空间并初始化realloc()函数——调整动态内存空间常见的动态内存的错误柔性数组为什么存在动态内存分配我们已经掌握了在内存开辟的方式int n = 10;int arr[10];但是这样的开辟方式存在两个特点:1.空间开辟大小是固定的2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候

2021-10-06 10:28:05 153 1

原创 通讯录小程序(C语言)

通讯录小程序(C语言)程序介绍实现思路和内容概括代码实现打印菜单定义通讯录初始化通讯录函数添加联系人函数显示通讯录函数查找通讯录函数删除联系人查找指定联系人修改指定联系人信息排序(按姓名)完整代码contact.hcontact.ctest.c运行展示总结程序介绍通过前面学习我们可以实现通讯录小程序的代码,首先,我们需要创建一个通讯录,通讯录中存放1000个人的信息,信息包括:名字,性别,年龄,电话,住址。通讯录主要由5个功能:增加联系人、删除联系人、修改联系人、查找联系人、按名称子排序。下面我们来看实

2021-09-25 22:42:23 2037 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除