- 博客(36)
- 收藏
- 关注
原创 二叉树:数据结构的分形之美
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把他叫做树是因为它看起来像一棵倒挂的树,也就说它的根朝上,而叶朝下的。
2024-04-30 17:54:51
1354
3
原创 LinkedList和链表
方法解释尾插将e插入到index位置尾插c中的元素删除index位置元素删除遇到的第一个o获取下标index位置元素将下标index位置元素设置为element清空判断o是否在线性表中返回第一个o所在下标返回最后一个o的下标截取部分list4.3LinkedList的遍历// add(elem): 表示尾插// foreach遍历// 使用迭代器遍历---正向遍历// 使用反向迭代器---反向遍历。
2024-04-21 19:20:09
1300
2
原创 Java中的栈和队列
栈和队列是构建更复杂数据结构的基础,如二叉树、图、堆等。它们在不同的算法和系统设计中扮演着关键角色。理解它们的工作原理和应用场景对于任何希望深入学习计算机科学的人来说都是必不可少的。通过掌握这些基本概念,我们可以更好地理解和设计复杂的系统,从而解决实际问题。
2024-04-20 17:05:26
1122
2
原创 Java的数组定义和使用
在Java编程中,数组是一种非常重要的数据结构,它允许我们存储多个值在一个单一的变量中。本文将深入探讨Java数组的基本概念、创建和使用方法,以及如何处理常见的数组问题。
2024-04-18 13:13:11
729
3
原创 ArrayList与线性表详解
线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表有:顺序表、链表、队列……线性表在逻辑上是线性结构,也就是说是连续的一条直线。但是在物理结构上不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。
2024-04-03 22:38:03
688
原创 关于list的那些事
在集合框架中,List是一个接口,继承自Collection。Collection也是一个接口,该接口中规范了后序容器中常用的一些方法具体如下所示Iterable也是一个接口,表示实现该接口的类是可以逐个元素遍历的,具体如下:站在数据结构来看,List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以执行增删改查以及变量等操作。List提供了一些方法,具体如下:常用方法如下:
2024-04-01 21:25:19
270
原创 包装类和泛型
一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类。如果要编写可以运用于多种类型的代码,那么这种限制对代码的束缚会很大。于是就有了泛型,用通俗的方式来讲,就是对类型实现了参数化。
2024-04-01 20:11:49
663
原创 动态内存管理详解
我们先来看看我们熟悉的内存开辟方式int a = 10;//在栈空间开辟4个字节//在栈空间开辟80个字节的连续空间但是对于空间的需求,不仅仅是上述情况。有时候我们需要的空间大小在程序运行时才知道,那数组编译时开辟的空间方式就不能满足了。在C语言中,引入了动态内存开辟,程序员可以自己申请和开辟空间,这样子就比较灵活了。
2024-03-30 16:32:46
794
原创 类和对象详解
Java是一门纯面向对象的语言(Object Oriented Program简称OOP,故面向对象语言也叫做OOP语言),在面向对象的世界里一切皆对象。面向对象是一种解决问题的思想,主要依赖于对象之间的交互完成一件事情。用面向对象的思想来涉及程序更符合人们对事务的认知,对于大型型程序的设计,扩展以及维护都非常友好。类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性,哪些功能。在Java中定义类时需要用到class关键字,具体语法如下://创建类field;
2024-03-20 20:17:20
870
3
原创 Java方法的详解和使用
语法格式:修饰符 返回值类型方法名称[参数类型 形参……]) {方法体代码;[return 返回值];示例:用方法来实现两个数字的相加return x+y;修饰符:一般用public static修饰返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void方法名字:采用小驼峰命名参数列表:如果方法没有参数,()中什么都不用写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开方法体:方法内要执行的语句。
2024-03-18 21:17:59
597
1
原创 浮点数详解
关于浮点数,很多人只是知道浮点数就是小数,简单来说,因为所有的小数都可以用科学计数法来表示,而小数点可能也会随之发生“浮动”,故称之为浮点数。举个例子,有这样一个数字:1999.99,如果用科学计数法表示则为1.99999*10^3,在这个过程中我们很明显地看到了小数点发生了“浮动”,浮点数的名字也由此得来。
2024-03-15 21:31:57
420
1
原创 自定义类型详解
我们在学C语言的时候,学过很多类型。比如int类型,char类型,float类型等。而这些类型都是属于既定类型,也就是自己无法改变和定义的类型。那么自定义类型顾名思义,就是可以自己来定义的类型。接下来我将要介绍的结构体,联合体,枚举,这些都属于自定义类型。int id[10];}s1;//声明结构体变量同时定义变量s1//定义结构体变量s2初始化:定义变量的同时赋初值struct student //类型声明//名字int age;//年龄//初始化int data;
2024-02-26 11:28:20
712
1
原创 交换两个变量的值的常见的方法
在这段代码中出现了表达式a=a+b-(b=a),其中括号“()”的优先级最高,所以会先进行括号内的运算,即将a的值赋值给b,但括号外b的值并未发生变化,所以a=3+5-3=5。同样也达到了两个值交换的效果。异或是一种对于两个二进制数的运算,相同为假,不同为真。其中,两个相同的变量异或为0,0异或任何变量都为原来的值。原理:a=a+b,b=a-b,a=a-b,这个其实就是用两个值的和去减原来的变量即可得到另外一个变量。
2024-02-07 23:20:38
440
1
原创 进制的转换
举例::求二进制数1001(B)转为十进制的值,方法如下图:由上图可知将二进制转化为十进制的方法为:将每位的权重值算出来,并乘上每一位的值,然后相加即可得到9。同样地,这适合其他的进制的数转化为十进制数。
2024-02-07 15:44:58
581
1
原创 C语言随机数的生成及猜数字游戏
在写猜数字游戏的代码的时候,我们会用到随机数的生成,在其他的很多场景有时也会用到,在C语言中我们应当怎么去实现随机数的生成呢?
2024-01-29 13:00:45
958
原创 如何将potplayer设置为默认播放器
potplayer是一款非常好用且功能十分强大的视频播放器,但我们在播放视频的时候,很大概率直接打开的播放器并不是potplayer,其原因就是没有把potplayer设置为默认播放器。
2024-01-09 22:39:15
7069
原创 goto语句的含义及其用法
goto语句和跳转标号,是C语言中一种非常特别的语法,goto语句可以实现在同一个函数内跳转到设置好的标号处,其实这个用到的情况也非常之少,下面将其简单介绍一下。
2024-01-09 00:04:51
488
原创 在vs中取消warning警告的方法
4将文件进行编辑,输入#define _CRT_SECUER_NO_WARNINGS,CTRL+S,保存。3.在文件资源管理器中将其拖动到桌面,点击继续。(因为编辑这个文件需要较高的权限,所以一般需要这样操作)1.首先,用everything搜索名为newc++file.cpp的文件。6.此时我们打开vs,创建一个项目时就会有这一行预处理指令了。2.然后选择这个文件,打开路径。5.将文件拖回原来的文件夹中。
2024-01-08 14:31:29
1186
原创 赫夫曼编码的生成方法及原理
1.n个权值构建出来的赫夫曼树拥有n个叶子节点。2.每个赫夫曼编码都不是另外一个赫夫曼编码的前缀。3.赫夫曼树带权路径长度最短的树,权值较大的节点离根较近。4.带权路径的长度:树中所有的叶子节点的权值乘其到根节点的路径长度与最终的赫夫曼编码长度成正比关系。
2024-01-08 14:12:18
408
1
原创 printf()中各种常用占位符的盘点
llx :⼗六进制 long long int 类型。%Le :科学计数法表⽰的 long double 类型浮点数。%llu :unsigned long long int 类型。%G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。%e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。%E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。%llo :⼋进制 long long int 类型。%lld :⼗进制 long long int 类型。%lx :⼗六进制 long int 类型。
2024-01-08 13:50:30
835
原创 C语言中的static和extern的区别和用法
两者都是C语言中的关键字,static是静态的意思,可以用来修饰局部变量,修饰全局变量,修饰函数,extern是用来声明外部符号的。
2023-12-31 16:53:48
465
原创 用C语言判断每年每个月的天数
创建一个数组,输入月份,去匹配对应的天数,而每年的每个月的天数其实都是固定的,除了每年的二月,所以还需要输入年份,去判断该年是否为闰年,如果是闰年并且刚好是二月,则把天数加一。
2023-12-30 23:21:33
519
原创 strlen和sizeof的区别
strlen=string length,即用来求字符串长度的函数。在编译器中,输入一个“abcdef”这样一个字符串,在这个字符串中会隐藏一个“\0”,即字符串结束的标志,所以在使用strlen函数时,遇到"\0"时就会停止读取,而"\0"前的字符个数就是字符串的长度。注意:"\0"在这里是结束标志,strlen函数读取到这里就停止了,"\0"不算作一个字符。
2023-12-30 17:17:11
361
原创 C语言中的分支与循环
因为switch语句也是有分支效果的,只有在语句中使用了break,才可以跳出switch语句,如果某一个case语句的后面没有break语句,代码将继续执行下去,有可能执行其他语句中的代码,直到遇到了break或者switch语句结束,所以上述代码中,还执行了case 1和case 2。和while的对比:两者在循环过程中都有初始化,判断,调整这三部分,但是for循环的三个部分都非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就很分散,所以从形式上for循环更优。
2023-12-11 20:59:43
347
1
原创 初学者为什么基本都先去学C语言
关于为什么初学者都是从C语言学起,我认为是C语言能够帮助我们很好的理解计算机的运行逻辑,并且学完C语言后能够帮助我们去更好去理解学习其他语言,尽管高级语言那么多,但是彼此之间还是有很多的相通之处。但无论学什么语言,敲代码是必不可少的,敲多了才能很容易发现代码中出现的问题,及时地去修改,也就是所谓的手感。常见的编译器有msvc、clang、gcc ,而VS2022、XCode、CodeBlocks、DevC++、Clion 等,这些都是集成开发环境不是编译器,但很多人还是习惯性的叫他们编译器。
2023-12-02 01:44:19
83
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人