Mr.小朱同学
Java 开发工程师,从事 Web 应用程序的研发,擅长 Spring、SpringBoot 等技术。
热爱编程,业余时间学习新知识,通过 CSDN 记录学习心得和笔记内容。
展开
-
【计网笔记06】计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统
应用层,就是能够用户能够看见的应用程序,网络模型中,其他所有层都是为应用层服务,也就是给应用程序提供使用的基本条件,应用层是为应用程序提供通信服务的,既然是通信,那需要知道通信双方的协议格式,也就是通信的时候,事先约定好使用哪种数据格式进行交互。文件传输、访问和管理。电子邮件。虚拟终端。查询服务和远程作业登录。在应用层中,常见的应用层协议有:FTP、SMTP、POP3、HTTP、DNS。原创 2023-06-10 21:37:36 · 1546 阅读 · 0 评论 -
【计网笔记05】计算机网络之传输层、TCP协议、UDP协议、TCP三次握手四次挥手、TCP可靠传输、TCP拥塞控制
TCP实现流量控制是采用的【滑动窗口】的思想,所谓的【滑动窗口】是指:接收方和发送方各自会有一个窗口,当对应的窗口已经满了之后,多余的数据会被丢失,而不会进行处理,当窗口中的数据被确认之后,此时窗口会进行移动,移动之后就可以接收新的数据进行处理。UDP(User Datagram Protocol)是用户数据报协议,是面向无连接的,传输是不可靠的,因为双方不需要建立连接,不需要三次握手、四次挥手的过程,所以时延小,比较适合传输小文件。传输层是如何知道接收到的数据应该分发给哪个应用进程的呢?原创 2023-06-04 16:08:50 · 525 阅读 · 0 评论 -
【计网笔记04】计算机网络之ARP协议、DHCP协议、IPv6地址、RIP协议、网络层设备
RIP是一种路由选择协议,它是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大的优点就是简单。RIP协议需要每一个路由器中保存一份从它自身到下一个目的网络的最佳距离记录,注意是最佳距离,也就是最短的路由记录,即:经过的路由器最少的距离。RIP协议规定:一条路由最多包含15个路由器,也就是距离最多是16,所以RIP协议只适用于小互联网。RIP协议只会和相邻的路由器交换信息,并且路由器之间交换的是路由表信息,每隔30秒就会交换一次路由表信息,如果超过180秒。原创 2023-05-26 21:46:36 · 1022 阅读 · 0 评论 -
【计网笔记03】计算机网络之局域网、广域网、VLAN虚拟局域网、IPv4地址、子网划分和子网掩码
局域网(Local Area Network,简称LAN),是指在某个区域内由多台计算机组成的计算机网络,它的覆盖范围很小,一般是在5km之内,决定局域网的主要因素有三个:网络拓扑、传输介质、介质访问控制方法。网络层的功能是将【分组】从源端传输到目的端,为分组交换网络上的不同主机提供通信服务,网络层的传输单位是【数据报】,一个数据报是由多个分组组成的。路由转发和分组转发。异构网络互联。拥塞控制。原创 2023-05-21 10:33:03 · 504 阅读 · 0 评论 -
【计网笔记02】计算机网络之数据链路层(封装成帧、差错控制、流量控制、信道访问控制、滑动窗口)
封装成帧:将物理层的数据报封装成链路层中的帧,在数据报的开始和结束位置添加帧的界限。帧同步:接收方每次接收到数据时候,都需要判断一下帧开始和帧结束。原创 2023-05-13 18:22:26 · 582 阅读 · 0 评论 -
【计网笔记01】计算机网络之OSI模型、计算机性能指标、奈氏准则和香农定理、编码和调制、物理层设备
计算机网络,是指:将一个分散的、具有独立功能的计算机系统,采用通信设备和线路连接起来,由功能完善的软件实现资源的共享和信息传递的系统。计算机网络具备这些功能:数据通信、资源共享、分布式处理。第一个阶段:阿帕网,它是因特网的前身,因特网是最大的网络。第二个阶段:三级结构网络,采用【校园网(企业网)===》地区网===》主干网】三层结构,用户通过校园网或者企业网连接到地区网,地区网在连接到主干网。原创 2023-05-07 16:47:02 · 434 阅读 · 0 评论 -
【操作系统笔记06】操作系统之IO设备管理、IO软件层次结构、磁盘管理、磁盘调度算法、SSD固态硬盘
I/O:Input/Output输入输出设备,输入是将数据从外界读入到将数据里面,输出是将数据从计算机中写出到外界。IO设备按照特性分类,可以分为:人机交互外部设备、网络通信设备、存储设备;按照传输速度来分类,可以分为:低速设备、中速设备、高速设备;按照信息传输的单位来分类:字符设备(传输慢、不可寻址、采用中断驱动方式)、块设备(传输快、可寻址)。原创 2023-04-28 20:42:15 · 979 阅读 · 1 评论 -
【操作系统笔记05】操作系统之文件系统、文件目录、文件存储管理方式、虚拟文件系统
文件是保存在磁盘上面的,一个文件具有一些属性,例如:文件名称、文件大小、文件类型、文件保护信息等,同一个目录下不能存在相同的文件名称,根据文件内容的保存方式,可以将文件分为:流式文件、记录式文件。流式文件:采用非结构化的方式保存数据,就是以二进制流的形式保存。记录式文件:由一组相似的记录组成,是按照某种结构组织的。原创 2023-04-22 13:58:00 · 525 阅读 · 0 评论 -
【操作系统笔记04】操作系统之内存管理方式(分页、分段、段页式)、虚拟存储技术、页面置换算法
基地址变换机构,可以借助于页表将逻辑地址映射成物理地址。系统中会存在一个【页表寄存器PTR】,用于记录页表起始地址F、页表长度M,当进程处于未执行状态的时候,页表起始地址F和页表长度M是存放在进程控制块PCB中,而PCB又是保存在内存中的系统区里面,当进程需要执行的时候,系统会将PCB读取到PTR寄存器里面。操作系统根据PTR寄存器,计算出的当前页号对应的内存块号,也就是找出了真实的物理地址。原创 2023-04-16 09:53:39 · 220 阅读 · 0 评论 -
【操作系统笔记03】操作系统之进程的死锁、内存分配和回收、内存动态分配算法
死锁,是指:多个进程之间互相等待对方所持有的资源,从而导致各个进程互相阻塞的情况。饥饿:是指某个进程长时间的得不到系统资源。当发生死锁的时候,此时一定是存在两个或者两个以上的进程出现死锁,循环等待对方释放资源,发生死锁之后,这个进程一定是处于阻塞状态。原创 2023-04-09 09:39:47 · 596 阅读 · 0 评论 -
【操作系统笔记03】操作系统之进程同步、互斥、信号量机制、PV操作
对临界资源的互斥访问,一般逻辑上可以分为四个部分,分别是:进入区、临界区(临界段)、退出区、剩余区。进入区和退出区是实现进程互斥的代码段,临界区是访问共享资源的代码段,剩余区则是做一些其他额外的逻辑处理。进程互斥有四个原则,分别是:空闲让进(临界区空闲,则进程可以立即访问)、忙则等待(临界区以及被某个进程访问,其他进程则要等待)、有限等待(等待的进程不能一直等待,需要有个等待时间)、让权等待(等待的进程,必须释放处理机)。原创 2023-04-02 15:47:25 · 298 阅读 · 0 评论 -
【操作系统笔记02】操作系统之多线程模型、处理机调度及其相关调度算法
线程是程序执行的最小单位,线程是属于进程中的一个概念,操作系统中不同的应用程序采用进程进行管理,CPU在多个进程之间来回切换执行进程代码,从而实现了同时执行多个应用程序的效果,但是如果要在一个应用程序中,同时执行多个事件,那么这个时候就需要将多个事件的代码划分成线程,然后CPU在多个线程之间来回的切换执行,从而实现了一个进程中同时做多件事情的效果。注意:线程是CPU处理器调度的单位,进程是CPU处理分配资源的单位。原创 2023-03-25 20:15:59 · 299 阅读 · 0 评论 -
【操作系统笔记01】操作系统之概念、功能、运行机制和体系结构、进程相关的概念介绍
操作系统是介于用户和计算机硬件之间的一层接口,用户通过向操作系统发起一个操作命令,操作系统就会根据这个命令去和硬件交互,完成相关的功能,而其中操作系统提供给用户的这个功能,就是由一组程序接口组成的,这组程序接口就叫做:系统调用。应用程序通过系统调用的方式,请求操作系统的服务,操作系统会统一的管理计算机的共享资源,依次处理用户请求,这样可以保证系统的稳定性和安全性。设备管理、文件管理、进程管理、进程通信、内存管理。系统调用可以认为是操作系统提供的一些库函数,但是它和库函数还是有一些区别的。原创 2023-03-18 16:24:29 · 300 阅读 · 0 评论 -
【计组笔记08】计算机组成与原理之IO设备系统(输入、输出设备、外存储器)
IO系统,是指IO设备组成的一个模块,IO就是输入设备、输出设备以及外部存储部件组成的,CPU、主存和外部设备进行数据交互就是通过IO设备来实现的。原创 2023-03-06 19:15:00 · 273 阅读 · 0 评论 -
【计组笔记06】计算机组成与原理之控制器和总线结构
总线就是一组能够为多个部件分时共享的公共信息的线路,它是真实存在的线路。总线是为了解决CPU和IO设备之间的灵活性问题。机械特性:尺寸、形状、管脚数、排列顺序等。电气特性:传输方向和电平的范围。功能特性:每一根总线的作用,例如:数据、地址、控制总线。时间特性:信号的时序关系。原创 2023-03-04 20:52:02 · 406 阅读 · 0 评论 -
【计组笔记05】计算机组成与原理之虚拟存储器、指令系统、中央处理器CPU
虚地址和实地址之间的转换,是借助于【段表】来完成的,计算机中会有一个【段表基址寄存器】,它保存的是【段内起始地址】,将【段号】和【段内起始地址】拼接起来,就可以找到【段表】中的具体的【段表项】,将这个【段表项】和【段内地址】加起来,就可以找到主存中的具体地址。多指令周期,是指针对不同类型的指令,采用不同的指令周期来执行,这种设计方式中,指令也是顺序执行(串行)的,只不过每一条指令不会存在空闲的周期,为了能够实现不同类型的指令采用不同的指令周期,所以需要采用更加复杂的电路来实现。原创 2023-02-25 15:52:39 · 501 阅读 · 0 评论 -
【计组笔记04】计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射
存储周期:存储器从启动存取开始,到下一个启动存取开始之前的这一整个过程,就叫做:存储周期。存储周期由两部分组成:存取时间、恢复时间。存储器真正的读数据或者写数据的时间是存取时间,而恢复时间是为了确保存取过程中,电流正确的传输。存储器在恢复时间里面,不能够进行其他的存取操作,显然,这种存取操作的效率是比较低的,浪费了一部分时间,那么有什么方式可以提高存取效率呢???既然恢复时间是不进行存取操作的,有没有可能利用恢复时间来进行下一次的存取操作呢???这里就要介绍一种存取方式,即:双口RAM。原创 2023-02-19 18:37:17 · 402 阅读 · 0 评论 -
【计组笔记03】计算机组成原理之系统五大部件介绍、主存模型和CPU结构介绍
这篇文章,主要介绍计算机组成原理之系统五大部件、主存模型和CPU结构。冯诺依曼体系结构中,他将计算机底层硬件划分为【五大部件】,输入设备:将用户输入的数据传递到计算机内部。输出设备:将计算机运算的结果显示给用户。运算器:进行算术和逻辑运算。控制器:控制各个部件之间的协调工作(例如:什么时候数据数完成,数据计算完成,什么时候应该输出结果等等控制信号)。存储器:存储用户输入的数据。原创 2023-02-11 11:38:43 · 1406 阅读 · 0 评论 -
【计组笔记02】计算机组成原理之浮点数的表示、IEEE754标准、浮点数的规格化、浮点数的加减运算以及ALU运算器、加法器的设计
前面介绍了计算机中表示的【定点整数】和【定点小数】,但是这两种数的表示都是具有局限性的,由于【定点整数】和【定点小数】的小数点是固定的,所以它们能够表示的最大值和最小值是确定的,如果计算机要保存一个非常大的数,但是【定点整数】和【定点小数】又保存不了,所以此时就无法表示了。发明计算机的人很聪明,既然定点数表示的范围是不够大,那么如果小数点是浮动的,那是不是可以表示更大的数呢???所以这里我们要介绍的是浮点数,浮点数是指小数点是变动的。计算机中将浮点数的表示格式划分成了以下几个部分(N = r^E * M原创 2023-01-30 18:12:56 · 702 阅读 · 0 评论 -
【计组笔记01】计算机组成原理之冯诺依曼体系结构、计算机编码、定点数的表示、原码和补码的乘除法
计算机是由两大部分组成,分别是:硬件和软件,硬件是真实可以看得见的物理机器,而软件则是看不见摸不着的应用程序,软件又可以分为:系统软件和应用软件。1946年,第一台电子数字计算机诞生,叫做:ENIAC。第一代(电子管时代):采用电子管作为逻辑元件,体积大,耗电量大。第二代(晶体管):采用晶体管作为逻辑元件,晶体管是贝尔实验室发明出来的,体积更小,耗电量更少。第三代(中小规模集成电路时代):将晶体管、电容等元件集成到一起作为逻辑元件,这样可以避免人为的错误。第四代(大规模、超大规模集成电路时代):原创 2023-01-24 15:49:29 · 455 阅读 · 1 评论 -
【数据结构笔记20】数据结构之排序算法(十大排序算法、败者树、最佳归并树、置换-选择排序、最佳归并树)
插入类排序直接插入排序。折半插入排序。希尔排序。选择类排序简单选择排序。堆排序。交换类排序冒泡排序。快速排序。归并排序桶排序基数排序计数排序。原创 2023-01-18 19:23:18 · 1072 阅读 · 0 评论 -
【数据结构笔记19】数据结构之查找算法(顺序查找、折半查找、分块查找、B树、B+树、散列查找)
多路平衡查找树。树中每个结点至多有m颗子树,即:至少包含m-1个关键字。如果根结点不是叶子结点,那么它至少包含两颗子树(因为要保持平衡的特点)。规定除了根结点之外,其余的任意一个非叶子结点都至少包含【m/2】个分叉(即:每一个结点中至少包含【m/2 - 1】个关键字)。对于任意一个结点,它的所有子树的高度都是相同的(这棵树是平衡的,并且是绝对平衡的)。所有的叶子结点都出现在同一层上面,并且不会携带任何信息。可以是空树。原创 2023-01-11 20:34:54 · 371 阅读 · 0 评论 -
【数据结构笔记18】数据结构之图的最短路径算法Floyd、有向无环图DAG、拓扑排序、关键路径
有向无环图,是指:在一个有向图中,如果不存在回路,那么这个图就称作是:有向无环图(Directed Acyclic Graph),简称:DAG图。原创 2023-01-02 13:24:01 · 360 阅读 · 0 评论 -
【数据结构笔记17】数据结构之图的遍历和最短路径问题(广度优先遍历、深度优先遍历、最小生成树、求解最短路径)
图的遍历方式有两种,分别是:广度优先遍历(BFS)和深度优先遍历(DFS),广度优先遍历思想和树的层次遍历是一样的,深度优先遍历则是利用递归的思想遍历图的每一个结点。这里首先介绍图的广度优先遍历,图中由于顶点之间存在很多条边,每个顶点之间又可以相互存在边,所以在遍历的过程中,需要记录已经遍历过的顶点,下一次遍历的时候,就不会再次遍历这个顶点。图的广度优先遍历算法思想大致如下所示:第一步:从图中一个顶点A开始,依次访问A顶点所有相邻的顶点。原创 2022-12-26 16:56:11 · 385 阅读 · 0 评论 -
【数据结构笔记16】数据结构之图的四种存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)
邻接矩阵,其实就是利用一个二维数组来保存图G中的每一个顶点和顶点之间的关系,二维数组中的每一行或者每一列代表某个顶点V和其余顶点是否有边,大致如下图所示:邻接矩阵中的每一个单元格,表示两个顶点之间是否存在边,如果存在则设置为1,否则设置为0。如果图G是带权图,那么邻接矩阵中就可以保存对应边的权值,如果没有边,则保存无穷大,有时候,顶点自身到自身的单元格,也可以保存0。无向图的邻接矩阵中,如果要某个顶点的度,可以计算这个顶点对应的一行或者一列中,非0值个数,如果是带权图,那就统计非无穷大和非0的个数,最终原创 2022-12-22 20:10:44 · 820 阅读 · 0 评论 -
【数据结构笔记15】数据结构之图的概念及其相关术语(网状结构)
图G是由顶点集V和边集E组成,记作:G=(V,E)。其中顶点集合V(G)表示图中的有限非空顶点集合,边集E(G)表示图G中顶点之间的关系集合,也就是顶点之间的边关系。图的特点:如果图G中的边集E是没有方向的,也就是说,边集E是无向边(简称:边),那么就称图G是无向图。边集E中的每一条边可以用一组【无序对】的方式来表示,即:【(v,w)或者(w,v)】,并且(v,w)==(w,v),其中w,v都是图G中的顶点,顶点w和顶点v称作是:邻接点。如果图G中的边集E是具有方向的,也就是说,边集E是有向边(简称:弧原创 2022-12-19 19:51:24 · 581 阅读 · 0 评论 -
【数据结构笔记14】数据结构之二叉排序树、平衡二叉树、哈夫曼树
左子树上所有的结点值,都小于根结点的值。右子树上所有的结点值,都大于根结点的值。左、右子树又都是二叉排序树。平衡二叉树():对于二叉树中的任意一个结点,它的左子树和右子树的高度之差的绝对值不超过1,那么满足这种特点的二叉树就称作是平衡二叉树。其中,我们规定,平衡二叉树中,左子树减去右子树的差值,就称作是:平衡因子。对于某个结点来说,它的【平衡因子=左子树高度-右子树高度】。平衡二叉树中,平衡因子只会存在三种情况:-1,0,1。原创 2022-12-15 20:20:21 · 227 阅读 · 0 评论 -
【数据结构笔记13】数据结构之树的三种表示方法(双亲表示法、孩子表示法、孩子兄弟表示法)以及树、森林和二叉树之间的转换
前面都是介绍的二叉树的存储结构,二叉树可以采用二叉链表、三叉链表的方式来存储,但是对于一颗多叉树来说,树中的每一个结点可能存在多个孩子结点,不能单纯的使用n叉链表来存储,这样子就太复杂了。双亲表示法,对于一颗多叉树来说,虽然每一个结点可能存在n个孩子结点,但是可以确定的是,每一个结点必定只会存在一个双亲结点(根结点除外),所以,我们可以利用这个特点,来实现多叉树的存储。利用顺序存储的方式,我们在保存每一个结点的同时,保存这个结点的双亲结点的位置,满足这种存储结构的表示法,称作是:双亲表示法。原创 2022-12-13 20:06:21 · 825 阅读 · 0 评论 -
【数据结构笔记12】数据结构之线索二叉树介绍及其线索化(构造线索二叉树、寻找前驱、后继结点)
线索二叉树,是指:将二叉树链表中的【n+1】个空链域指向对应结点的前驱结点以及后继结点,满足这种结构的二叉树就是线索二叉树。左孩子不为空,右孩子为空。左孩子为空,右孩子不为。左、右孩子都为空。针对上面三种情况,为了能够描述前驱和后继,我们规定:对于某个结点R来说。如果R结点的【左孩子结点不为空】,则R的左指针域【指向左孩子】。如果R结点的【左孩子结点为空】,则R的左指针域【指向R结点的前驱结点】。如果R结点的【右孩子结点不为空】,则R的右指针域指向R结点的右孩子。原创 2022-12-12 19:36:00 · 486 阅读 · 0 评论 -
【数据结构笔记11】数据结构之二叉树的存储结构(顺序存储、二叉链表、三叉链表)
二叉树的顺序存储,是利用数组这种结构依次保存二叉树中的每一个结点,我们就拿满二叉树来举例子,满二叉树中除了最后一层结点之外,其余结点都是具有左右孩子结点的,那么一颗高度等于h的满二叉树,它就一定具有【2^h - 1】个结点,也就是需要一个长度等于【2^h - 1】的一维数组来保存。原创 2022-12-10 13:43:10 · 1081 阅读 · 0 评论 -
【数据结构笔记10】数据结构之树和二叉树介绍及相关常见的概念(树和二叉树)
树是n个结点的有限集合,如果n=0,则表示:空树,否则称为:非空树。有且仅有一个被称为【根】的结点。除了【根】结点之外,其余结点可以看作是m个互不相交的有限集合,其中每一个集合又组成了一棵树,并且这些集合被称为:子树。树,从根节点开始,之后的每一个结点有且仅有一个前驱结点,可以有多个后继结点,并且树种相邻结点是互不相交的,大致如下图所示:树这种数据结构,在很多地方都有使用到,例如:文件系统中的目录,遗传图谱、部门等级、行政区域、等等,这些都是采用的是树这种数据结构。原创 2022-12-07 10:59:22 · 250 阅读 · 0 评论 -
【数据结构笔记09】数据结构之稀疏矩阵的三元组和十字链表法具体代码实现(C语言)
这篇文章,主要是使用C语言实现稀疏矩阵的压缩存储,采用三元组方式和十字链表法两种方式。原创 2022-12-05 16:20:09 · 290 阅读 · 0 评论 -
【数据结构笔记08】数据结构之数组和矩阵的压缩存储(对称矩阵、三角矩阵、对角矩阵、稀疏矩阵)
对称矩阵,首先必须是一个【nxn】的方阵,因为只有正方形才会对称,如果这个方阵中的每一个元素,都关于对角线对称,那么这个矩阵就叫做:对称矩阵,如下图所示:对称矩阵如果要存储到计算机里面的话,最简单的方式就是利用一个二维数组保存,那么这样就需要【n*n】个存储空间,但是从对称矩阵的特点来看,由于是关于对角线对称的,所以会存在重复的元素,相当于会存储两个一样的矩阵元素,这样就比较浪费存储空间了,因此,对称矩阵中的每一个元素只需要保存一次即可,这就是对称矩阵的压缩存储。原创 2022-12-04 09:47:04 · 804 阅读 · 0 评论 -
【数据结构笔记07】数据结构之队列的链式表示和实现(链队)
队列的链式表示和实现,是采用链表的形式来存储队列元素,一个链表结点存储一个队列元素,由于是链表,所以每一个链表结点就需要包含数据域和指针域,并且链队还有队头和队尾,需要单独定义两个指针,用于表示队头和队尾指针。链队需要使用两个结构体来定义。第一个结构体,用于定义链队中的每一个元素结点。第二个结构体,用于定义链队的队头、队尾指针。// 链队的定义int data;// 数据域// 指针域}QNode;// 链队的队头、队尾指针定义// 队头、队尾指针}LinkQueue;原创 2022-12-02 14:55:30 · 486 阅读 · 0 评论 -
【数据结构笔记06】数据结构之队列的顺序表示和实现(普通队列、循环队列)
队列,也是一种线性表,它是一种操作受限的线性表,我们定义只能够在线性表的一端进行插入元素,另一端只能进行删除元素,满足这种特点的线性表,就叫做:队列。队列的特点:先进先出(FIFO),即:先入队列的元素,将先出队列。对头:允许删除元素的那一端,称为队头。队尾:允许插入元素的那一端,称为队尾。空队列:队列中没有元素。按照队列的两端操作方式,可以分为如下几种类型的队列:普通队列:只允许在一端插入元素,另一端删除元素。插入受限的队列:只允许在一端进行插入元素,允许在两端删除元素。删除受限的队列:只原创 2022-11-28 12:45:00 · 339 阅读 · 0 评论 -
【数据结构笔记05】数据结构之栈的链式表示和实现(链栈)
栈的链式表示,和单链表的结构类似,如果我们规定,对单链表的操作,只能够在头结点一端进行插入、删除元素,那么满足这种特点的单链表,就是栈的链式表示,叫做:链栈。链栈特点:没有大小限制,只有内存足够,就能够无限插入元素。链栈也有两种实现,一种是带头结点的链栈,另外一种就是不带头结点的链栈(这篇文章采用不带头结点的链栈)。链栈,本质就是单链表,只不过是操作受限的单链表,所以链栈的定义,也是和单链表的定义一致的。定义数据域,定义指针域。// 链栈的定义int data;// 数据域// 指针域。原创 2022-11-21 22:19:10 · 513 阅读 · 0 评论 -
【数据结构笔记04】数据结构之栈的顺序表示和实现(顺序栈)
栈,是一种特殊的线性表,是一种操作受限的线性表,我们规定,如果只允许在线性表的一端进行插入和删除元素,那么满足这种特点的线性表,就称为:栈。栈的特点:满足后进先出特点(LIFO。栈顶:允许插入和删除元素的一端,称为栈顶。栈底:不允许插入和删除元素的一端,称为栈底。空栈:没有元素的栈称为空栈。顺序存储:顺序栈。链式存储:链栈。顺序栈,采用数组结构来定义,需要定义一个数组来保存每一个栈元素,还需要一个栈顶指针,由于表示栈顶位置。第一步:声明栈顶指针top,初始时候,top=-1,表示空栈。原创 2022-11-15 22:00:23 · 436 阅读 · 0 评论 -
【数据结构笔记03】数据结构之线性表的链式表示和实现(双向链表、循环链表)
双向链表定义的时候,就需要定义两个指针域和一个数据域,分别是:数据域:data,用于保存具体结点存储的数据。前指针域:proir,指向前一个结点存储地址。后指针域:next,指向后一个结点存储地址。// 定义双向链表int data;// 数据域// 前指针域,后指针域。原创 2022-11-08 18:45:00 · 1003 阅读 · 0 评论 -
【数据结构笔记02】数据结构之线性表的链式表示和实现(单链表)
线性表的链式表示和实现,利用一组地址连续或者不连续的内存空间存储线性表的每个元素,由于逻辑上相邻的元素,在内存里面可以是不连续的,所以为了能够表示这种关系,线性表中的每个数据元素需要存储下一个元素的内存地址,我们把单链表有两种形式,分别是:带有头结点的链表、不带有头结点的链表。单链表有两个域,分别是:数据域、指针域。采用结构体的形式来定义单链表,那么指针域也是一个结构体类型的,因为线性表中的每一个元素都相当于是结构体类型。// 单链表定义int data;// 数据域// 指针域// 给结构体起了两个别名。原创 2022-11-01 23:19:08 · 132 阅读 · 0 评论 -
【数据结构笔记01】数据结构之线性表的顺序表示和实现(C代码)
线性表定义:具有相同数据类型的n个有限序列。线性表采用【L】表示,如下:L=(a1,a2,a3,...,an),其中n表示的线性表的表长,n=0时候,称为空表。线性表特点:除了第一个结点、最后一个结点之外,其余每一个结点,都有且仅有一个前驱节点、唯一的后继结点。第一个结点称为:表头。最后一个结点称为:表尾。线性表两种表示(存储方式):第一种:顺序表示(顺序存储),利用内存中一组地址连续的存储单元依次保存线性表中的每一个元素。原创 2022-10-30 19:42:20 · 216 阅读 · 0 评论