自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构学习笔记-图

NextNeighbor(G,x,y):假设图G中顶点y是顶点x的第一个邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点,则返回-1。RemoveEdge(G,x,y):若无向边(x,y)或有向边<x,y>存在,则从图G中删除该边。Set_edge_value(G,x,y,v):设置图G中边(x,y)或<x,y>对应的权值为v。AddEdge(G,x,y):若无向边(x,y) 或有向边<x,y>不存在,则向图G中添加该边。Neighbors(G,x):列出图G中与结点x邻接的边。

2024-06-16 21:57:04 652

原创 数据结构学习笔记-并查集

先找到根结点,再将查找路径上所有结点都挂到根结点下。“并”操作:将两个不相交的集合并为一个。“查”操作:确定一个指定元素所属集合。①用根结点的绝对值表示树的结点总数。②Union操作,让小树合并到大树。

2024-06-12 18:04:28 316

原创 数据结构学习笔记-树

访问森林中第一棵树的根结点。中序遍历森林中第一棵树的根结点的子树森林。在含有n个带权叶结点的二叉树中,其中带权路径长度最小的二叉树称为哈夫曼树,也称最优二叉树。本质:用二叉链表存储森林——左孩子右兄弟,森林中的各个树的根结点之间视为兄弟关系。结点的带权路径长度:从树的根到该节点的路径长度(经过的边数)与该节点上权值的乘积。若没有一个编码是另一个编码的前缀,则称这样的编码为前缀编码,前缀编码无歧义。结点的权:有某种现实含义的数值(如:表示结点的重要性等)。树的后根遍历序列与这棵树相应二叉树的中序序列相同。

2024-06-12 16:34:39 380

原创 数据结构学习笔记-二叉树

按层序从1开始编号,结点i的左孩子为20i,右孩子为2i+1;结点i的父节点为[i/2](向下取整)。如果能找到p的父节点,且p是右孩子,其左兄弟非空,p的前驱为左兄弟子树中最后一个被先序遍历的结点;如果能找到p的父节点,且p是左孩子,其右兄弟非空,p的后继为右兄弟子树中第一个被后序遍历的结点;如果能找到p的父节点,且p是右孩子,其左兄弟为空,p的父结点即为其前驱;如果能找到p的父节点,且p是左孩子,其右兄弟为空,p的父节点即为其后继;若p有左孩子,则先序后继为左孩子,若p没有左孩子,则先序后继为右孩子。

2024-06-08 14:34:51 788

原创 数据结构学习笔记-串

若当前子串匹配失败,则主串指针i指向下一个子串的第一个位置,模式串指针j回到模式串的第一个位置;若主串S中存在与串T值相同的子串,则返回它在主串S中第一次出现的位置;(8)SubString(&Sub,S,pos,len):求子串。(1)将主串中所有长度为m的子串依次与模式串对比,直到找到一个完全匹配的子串,或所有子串都不匹配为止。若主串S中存在与串T值相同的子串,则返回它在主串中第一次出现的位置;(2)StrCopy(&T,S):复制操作。子串在主串中的位置:子串的第一个字符在主串中的位置。

2024-06-04 22:09:24 800

原创 数据结构学习笔记(6)--特殊矩阵的压缩存储

key:按行优先的原则,a[i][j]是第i(i-1)/2+j个元素,数组下标k=i(i-1)/2+j-1(数组下标从0开始)ai,j转B[k],k=(i-1)(2n-i+2)/2+(j-i),j<=j(上三角区和主对角线元素)ai,j转B[k],k=i(i-1)/2+j-1,i>=j(下三角区和主对角线元素)k=j(j-1)/2+i-1,i<j(上三角区元素ai,j=aj,i)k=i(i-1)/2+j-1,i>=j(下三角区和主对角线元素)当|i-j|>1时,有ai,j = 0(1<=i,j<=n)

2024-06-02 18:03:30 597

原创 Python-生成折线图

【代码】Python-生成折线图。

2024-06-02 10:49:56 317

原创 Python学习笔记-pyecharts入门

全局配置选项可以通过set_global_opts方法来进行配置。

2024-06-01 14:02:47 291

原创 Python学习笔记-JSON数据格式的转化

注意:如果字典中有中文,转换为json,想要输出中文,需要带上特殊的属性。json本质上是一个特定格式的字符串。

2024-05-30 21:53:28 511

原创 Python学习-异常-模块-包-综合案例

(3)异常-模块-包-综合案例.py文件。(2)file_util.py文件。(1)str_util.py文件。创建一个包:my_utils。

2024-05-30 11:44:16 579

原创 python学习笔记-模块

如果一个模块文件中有‘_ _all_ _’变量,当使用‘from xxx import *’导入时,只能导入这个列表中的元素。开发人员经常会自行在文件中添加一些测试信息,例如,在my_modulel.py中添加测试代码test(1,1)当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用到的是后面导入模块的功能。当导入该模块文件时,在运行的时候会自动执行‘test’函数的调用。(2)from 模块名 import 功能名。①_ _main_ _变量。②_ _all_ _变量。

2024-05-29 17:49:28 565

原创 python学习笔记-异常

finally表示的是无论是否异常都要执行的代码,例如关闭文件。或者基本的捕获语法也可以实现全部错误类型的捕获。注意:一般try下方只放一行尝试执行的代码。else表示的是如果没有异常需要执行的代码。(6)异常的finally。(4)捕获全部类型的异常。e记录了异常的内容。异常是具有传递性的。

2024-05-28 01:49:56 255

原创 数据结构学习笔记(5)--栈的应用

若扫描到运算符或界限符,则按照“中缀转后缀”相同的逻辑压入运算符栈(期间也会弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应的运算,运算结果再压回操作数栈)依次弹出栈中优先级高于或等于当前运算符的所有运算符,并加入后缀表达式,若碰到“(”或栈空则停止。遇到“)”则依次弹出栈内运算符并加入后缀表达式,直到弹出“(”为止。③若扫描到运算符,则弹出两个栈顶元素,执行相应运算,运算结果压回栈顶,回到①。③若扫描到运算符,则弹出两个栈顶元素,执行相应运算,运算结果压回栈顶,回到①。

2024-05-27 14:11:34 504

原创 数据结构学习笔记(4)--队列

方案1:牺牲一个存储单元(最后一个存储单元不会存进数据):(Q.rear+2)%MaxSize == Q.front;QueueEmpty(Q):判队列空,若队列Q为空返回true,否则返回false。销毁并释放队列Q所占用的内存空间。EnQueue(&Q,x):入队,若队列Q未满,将x加入,使之成为新的队尾。DeQueue(&Q,&x):出队,若队列Q非空,删除队头元素,并用x返回。队满条件:front==rear && size==MaxSize;队满条件:front==rear && tag==1;

2024-05-22 22:03:48 869 1

原创 Python学习笔记-文件操作

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。while方法如果文件不存在会创建文件,如果文件已经存在,写入的文字会覆盖原有的文件,清空原有的内容。num表示要从文件中读取的数据的长度(字节),如果没有传入num,那么就表示读取文件中所有的数据。注意:直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区。注意:a模式,文件不存在会创建文件;open()函数可以打开一个已经存在的文件,或者创建一个新文件。

2024-05-18 17:51:19 263

原创 数据结构学习笔记(3)--栈

StackElemty(S):判断一个栈S是否为空。若S为空,则返回true,否则返回false。若栈S非空,则用x返回栈顶元素。InitStack(&S):初始化栈。Pop(&S,&x):出栈,若栈S非空,则弹出栈顶元素,并用x返回。Push(&S,x):进栈,若栈S未满,则将x加入使之成为新栈项。创(初始化),增(进栈),删(出栈),查(获取栈顶元素)将栈初始化为-1的后续操作和初始化为0的后续操作不同。和单链表的操作相同,但栈只能在链表的一端进行操作。(7)共享栈(两个栈共享同一片空间)

2024-05-18 10:29:49 513

原创 数据结构学习笔记(2)--链表

这两种表示方法本质上是一样大,但是为了使代码的可读性更强,我们往往使用LNode *强调返回的是一个结点,LinkList强调这是一个单链表。增加一个新的结点:在内存中申请一个结点所需空间,并用指针p指向这个结点。表头结点的prior指向表尾节点,表尾结点的next指向头结点。在初始化的时候可以让next为某个特殊值,如-2,防止“脏数据”如果p是最后一个结点只能从表头开始依次寻找p的前驱。单链表的局限性:无法逆向检索,有时候不太方便。注意:头插法的重要应用:链表的逆置。找到一个空的结点,存入数据元素;

2024-05-16 22:26:50 741

原创 数据结构学习笔记(1)--顺序表

(1)定义:线性表是具有相同(每个数据元素所占空间一样大)数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。设线性表中第一个元素a1的存放位置为LOC(L),则a2的位置为LOC(L)+数据元素的大小,a3的位置为LOC(L)+2*数据元素的大小。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。删除表L中第i个位置的元素,并用e返回删除元素的值。获取表L中第i个位置的元素的值。返回线性表L的长度,即L中数据元素的个数。

2024-05-14 22:31:14 468 2

原创 python函数进阶篇笔记

(3)缺省参数:也叫默认参数,用于定义函数,为参数提供默认值,调用函数时不可传该默认参数的值(所有位置参数必须出现在默认参数前,包括函数的定义和调用)注:参数是“键=值”的形式的情况下,所有的“键=值”都会被kwargs接收,同时会根据“键=值”组成字典。注:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。(4)不定长参数:也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。(1)位置参数:调用函数时根据函数定义的参数位置来传递参数。

2024-05-13 11:47:45 367

原创 Python基础小白笔记六

这个函数需要至少一个参数,即文件的路径(可以是相对路径或绝对路径)。此外,你还可以提供一个可选的模式参数,如。可以确保所有的数据都被正确地写入,并释放系统资源。语句会在代码块执行完毕后自动关闭文件,即使发生异常也是如此。对于已打开的文件,你可以使用不同的方法来读取内容。方法向文件写入内容。注意,如果文件已存在且你使用。为了确保文件在使用后总是被关闭,你可以使用。在写入模式下打开文件后,你可以使用。模式打开它,那么原有内容将被覆盖。方法读取整个文件内容,(读取模式,默认)、方法读取一行内容,而。

2024-04-25 22:28:33 353 1

原创 Python基础小白笔记五

(5)修改键值对:可以通过键来修改对应的值,字典中的键具有唯一性,若定义了两个相同的键,其值后面的覆盖前面的。(11)获取键的值:使用get()方法获取键对应的值,如果键不存在,则返回None或指定的默认值。(4)新增键值对:可以直接通过键来新增键值对,如果键不存在,则会添加到字典中。(2)键的唯一性:字典中的键必须是唯一的,不能有重复的键,但值可以重复。(13)字典的长度:使用len()函数获取字典的长度(键值对的数量)。(10)元组作为字典的键:由于元组是不可变的,可以作为字典的键。

2024-04-25 01:42:53 1189 1

原创 Python基础小白笔记四

abs()函数可以接受任何数值类型(整数、浮点数、复数)的参数,但对于复数,他返回的是其模,也就是复平面上该点到原点的距离,布尔型True返回值为1,False返回值为0.默认情况下,split()函数不带任何参数时,会以空白字符(空格、换行符等)作为分隔符来分隔字符串,也可以传递一个参数来分割字符串。同C语言中的Switch语句很像,但match语句提供了更强大的匹配能力,可以匹配不仅仅是简单的值,还可以匹配数据类型、序列、字典等。abs()函数返回一个数的绝对值,是Python中的内置函数。

2024-04-22 14:21:05 353 1

原创 Python基础小白笔记三

如果在函数内部声明了一个全局变量,但没有在函数外定义该变量,那么在函数内部对该变量的赋值将会创建一个新的全局变量。这里,a被赋值为1,c被赋值为5,而b被赋值为[2, 3, 4](注意b是一个列表,因为它收集了多余的值)。函数内定义的变量为局部变量,要想在函数中修改外部的全局变量的值,需要用global来声明变量为全局变量。在这个例子中,a和b的值被交换,这是通过创建一个元组(b, a)并解包到a和b来实现的。说明对变量的赋值,不存在类型的限制,后面的值会找到覆盖掉前面的值。

2024-04-20 14:10:23 929

原创 Python基础小白笔记二

%`(取模):a % b 结果是 a 除以 b 的余数,在python中,余数与除数的符号相同,如,-4%3=2(-4 除以 3 的商是 -2,余数是 2。`not in`(非成员判断):a not in b 如果 a 不是 b 的成员,则结果为 True。`or`(逻辑或):a or b 如果 a 或 b 为 True,则结果为 True。`in`(成员判断):a in b 如果 a 是 b 的成员,则结果为 True。`==`(等于):a == b 如果 a 等于 b,则结果为 True。

2024-04-18 13:02:49 1029 1

原创 Python基础小白笔记一

(2)在输入时,默认分隔参数是空格,即输入的两个数之间以空格隔开,这个也是可以更改的,在结尾使用split()如,a,b=input().split(",")即可实现,split(“,”)将空格改为了逗号。input()函数总是返回一个字符串,即使用户输入的是数字,如果需要将输入转换为其他数据类型,如整数或浮点数,需要使用类型转换函数,如int()或float()。(2)若是不想要这种默认换行的格式,想要把打印的两行连接起来,只需要在前一行的内容“”之后加上,end=“”。

2024-04-17 01:26:17 614

空空如也

空空如也

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

TA关注的人

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