- 博客(16)
- 收藏
- 关注
原创 栈(链式存储结构)
栈也可以像线性表一样采用链式存储结构,采用链式存储结构的栈称为链栈。这里采用带头结点的单链表实现链栈。链栈具有不存在栈满上溢的优点,规定栈的所有操作都是在单链表的表头进行的。原因是根据下面示意图我们可以知道,在已知头结点地址的情况下,在其后面插入一个新结点和删除首结点都很方便。//数据域//指针域//链栈结点类型同时根据上面示意图以及链栈特性,我们可以得出以下结论:1.栈空的条件:s -> next == NULL.
2024-01-04 22:48:51 598 1
原创 栈(顺序栈存储结构)
栈就是一种只能在一端进行插入或者删除的线性表。分为栈顶与栈底,其中栈顶允许插入、删除操作。因为这种特性,栈顶的当前位置是动态的,栈顶当前位置有一个被称为栈顶指针的位置指示器标识。栈的主要特点是“后进先出”,每次进栈的元素都放在原来栈顶元素之前成为新的栈顶元素,每次出栈的元素也是当前栈顶元素,因此栈也被称为后进先出表。
2024-01-02 23:44:16 609
原创 Anaconda+pytorch+Vscode问题解决
上一篇中我们完成了Anaconda+pytorch+Vscode的配置,但是有家人说,在Vscode中无法使用pytorch,所以我补一篇来说一下我遇到问题的解决方法,希望对你们有帮助,如果没有解决还可以私信或评论我们一起探讨一下,如果环境还没配置好可以参考上一篇。如果你的电脑有英伟达的显卡,那可能我的环境配置过程对于你来说就不可以,如果需要的话,后面我会介绍一下GPU版本的环境配置过程,希望对你有帮助。若没有就手动找到就好,如果是参考我的上一篇配的环境的话,路径大致是差不多的。选好以后来验证一下,
2023-12-06 22:43:24 189 1
原创 Java核心卷(I)学习笔记(2)
前面记录了学习完Java核心卷,类与对象这一章后的一些体会和理解,接下来我会接着记录学习继承这一章节的心得。不足之处请多多指教。
2023-11-09 22:56:48 82 1
原创 Java核心卷(I)学习笔记(1)
因为先前的Java学习是基于我学的教材,有些内容教材中并未涉及亦或是比较浅显。所以找来机械工业出版社的《Java核心技术卷I:基础知识》,来深入学习Java的一些基础知识。因为书中的前面的部分例如:数据类型、类型转换等,我学的教材中都有详细涉及,所以我打算从对象与类开始学习。不足之处还请多多指教。这里我们通过分步解析一个类,来了解实现自定义类的过程。name = n;salary = s;
2023-10-29 13:26:46 79 1
原创 线性表(3)
在前面介绍的单链表时候,我们了解到它的指针域只包含了一个指向后继结点的指针,这会造成它无法逆向检索,因此我们引入双链表,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。
2023-10-20 22:42:35 54 1
原创 线性表(2)
前面介绍了顺序存储结构,了解完后我们发现顺序表在使用时需要事先占用一大块存储空间,这大大降低了存储空间的利用率,而且在实现一些操作时需要移动大量元素,时间复杂度大大提高。为了解决这些问题就有了链式存储结构,它可以实现存储空间的动态管理。存储元素的数据域用data表示,指针域用next表示,在后面的操作中我们均采取带头结点的单链表,即单链表是否为空都有一个头结点。//建立存储结构//存放数据//指向后继结点}LinkNode;
2023-10-10 18:18:51 63 1
原创 线性表(1)
线性表是最基本、最简单也最常用的一种数据结构。例如成绩单中每个成绩记录就是一个数据元素,每个元素又包含学号、姓名等数据项。下面我将介绍线性表的顺序和链式两种存储结构。线性表是具有相同特性的数据元素的一个有限序列。它的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。逻辑结构可以用下图表示:从定义可以得出线性表的三点特性:1.有穷性:一个线性表中的元素个数有限。2.一致性:一个线性表中元素的性质都一致。3.序列性: 只存在唯一的开始元素和终端元素。
2023-09-27 23:42:19 100 1
原创 用户自己建立数据类型(数据结构学前必知)
在学习数据结构之前学会自己建立数据类型是必要的,因为学习数据结构时,对于线性表,栈,树等等我们都需要根据它们的特点去建立相应的数据类型。例如:我们声明线性表的顺序存储类型时,我们需要一个数组去存储线性表中的所有元素,还需要一个整型变量来存储线性表的实际长度。这时候C语言所提供的一些已经由系统所定义好的数据类型(int,float,char等)就不足以完成这个任务,就需要了解下面的介绍。在生活中我们常常遇到一些彼此之间存在联系,成组出现的数据。
2023-09-14 21:19:29 138 2
原创 面向对象编程基础
类有一个double类型的变量speed,用于刻画机动车的速度,有一个int类型变量power,用于刻画机动车的功率。定义了setPower(int p)方法,用于设置机动车的功率;Beijingman类是Chinese的子类,新增了public void beijingOpera()方法,要求Beijingman重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
2023-09-03 18:52:58 570
原创 基本数据类型与类型转换
a,b输出-128,127是因为都发生了数值溢出,计算机在进行运算时,会将所有进制转换为2进制,以-129为例转化为二进制int型数据占32位即:10000000 00000000 00000000 10000001存储用补码,负数补码=原码取反+1。boolean类型在内存中占一位(不是一个字节),在Java中不可以使用0或者非0的整数代替true和false,例如:表达式10>20-17的结果是1,这句话就是错误的正确结果应该为true。变量:使用关键字int来声明int型变量,在声明时也可以赋初值。
2023-08-30 18:41:19 73
原创 Java多线程机制
此构造方法中的参数是一个Runnable类型的接口,所以在创建线程对象的时候必须向构造方法的参数传递一个实现Runnable接口类的实例,这个实例对象就是所创建线程的目标对象。线程的行为很像进程,它是比进程更小的执行单位,一个进程在执行过程中可以产生多个线程,形成多条执行线索,每条线索(每个线程)也有它自身的产生、存在和消亡的过程。在编写Thread类的子类时需要重写父类的run()方法。一个线程执行完run()方法,此线程进入死亡状态(TERMINATED状态),处于死亡状态的线程不具有继续运行的能力。
2023-08-22 22:40:27 115 1
原创 java中的抽象类与抽象方法
抽象类:Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。抽象方法:在抽象类中可以包含一般方法和抽象方法。抽象方法的定义与一般方法不同,抽象方法在方法头后直接跟分号,而一般方法含有以大括号框住的方法体。所有的抽象方法必须存在于抽象类中。
2023-07-12 19:33:13 957 1
原创 java中的静态与非静态
关键字来声明静态变量,它们属于类,而不属于类的实例。时,实例变量“上底”和“高”都被两次分配内存空间,分别被对象TuxingOne和TuxingTwo所引用,而变量“下底”不再分配内存,直接被对象TuxingOne和TuxingTwo引用、共享(如图所示)需要注意的是,静态成员在内存中只有一份副本,可能会导致并发访问的问题,因此在多线程环境下要谨慎使用。- 全局共享数据:使用静态变量来存储全局共享的数据,可以被所有类的实例访问和修改。静态内部类可以访问外部类的静态变量和方法,而不需要访问外部类的实例。
2023-07-12 16:40:44 293 1
原创 深度学习环境搭建(cpu版本)Anaconda+pytorch+Visual Studio Code
接着便要将pytorch下载至虚拟环境中,同样的由于pytorch在官网下载很慢,我们依然要添加国内源,将下面的指令复制到命令行执行即可。*Anaconda中文大蟒蛇,是一个开源的python发行版本,其包含了conda,python等180多个科学包及其依赖项。下载完毕后双击运行,点击next,i agree即可,之后会进入下面的页面建议勾选第一个,不然创建的虚拟环境可能会下到C盘。首先,我们需要先下载Anaconda,由于直接在官网下载缓慢,这里我们就用镜像下载。接下来进入pytorch的官网。
2023-05-14 18:53:09 1122 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人