
数据结构
文章平均质量分 91
数据结构与算法基本用法
不想写bug呀
轻舟已过万重山
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第四章 串和数组(数据结构python)
an-1),其中,A是数组名,ai(0≤i≤n-1)是数组A中序号为i的元素。,a0,n-1],…KMP算法的下一次比较si/tnext[1],而next[1]=0,并且t0=t1,说明一定有si≠tnext[1] nextval[j]=nextval[next[j]]=-1。(1)如果有tj=tk成立,可以直接推出si≠tk成立,没有必要再做si/tk的比较,直接置nextval[j]=nextval[k](nextval[next[j]]),即下一步做si/tnextval[j]的比较。原创 2024-04-16 16:39:42 · 590 阅读 · 1 评论 -
第三章 栈和队列
1.1、栈(stack)是一种只能在同一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶(top),表的另一端称为栈底(bottom)。栈的插入操作通常称为进栈或入栈(push),栈的删除操作通常称为退栈或出栈(pop)。1.2、主要特点① 后进先出,即后进栈的元素先出栈。② 每次进栈的元素都作为新栈顶元素,每次出栈的元素只能是当前栈顶元素。③ 栈也称为后进先出表或者先进后出表。原创 2024-04-02 15:08:42 · 812 阅读 · 1 评论 -
第五章 递归(数据结构)
(2)执行pow(x,10)的递归调用顺序是: pow(x,10) → pow(x,5) → pow(x,2) → pow(x,1) 共发生4次递归调用。设大问题Hanoi(n,x,y,z)的执行时间为T(n),则小问题Hanoi(n-1,x,y,z)的执行时间为T(n-1)。设大问题Hanoi(n,x,y,z)的占用空间为S(n),则小问题Hanoi(n-1,x,y,z)的占用空间为S(n-1)。(2)每次执行递归调用之前,把递归函数的值参和局部变量的当前值以及调用后的返回地址进栈。原创 2024-04-22 23:10:06 · 2754 阅读 · 0 评论 -
数据结构第一章
所涉及的数据元素的集合以及数据元素之间的关系,由数据元素之间的关系构成结构*算法是对特定问题的求解步骤的一种描述1、数值类型:int ,float,bool,complex*python内置的type()函数可以用来查询变量所指的对象类型*数值类型是不可变的数据类型2、字符串类型(1)字符串运算符+:字符串连接,a+b:"HelloPython"*:重复输出字符串,a*2:"HelloHello"[ ]:通过索引获取字符串中的字符,a[1]=e。原创 2024-03-18 16:17:50 · 2022 阅读 · 3 评论 -
数据结构第六章 树和二叉树
1、定义:给定n个结点的集合,结点编号为1~n,再给定一个等价关系,由等价关系产生所有结点的一个划分,每个结点属于一个等价类,所有等价类是不相交的。若它有左孩子结点,将左孩子结点进队。(2)在森林T中选取两棵根结点权值最小的子树作为左、右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左、右子树上根的权值之和。度为1的结点称为单分支结点,度为2的结点称为双分支结点,依次类推。(1)、满二叉树:所有分支结点都有左孩子结点和右孩子结点,并且叶子结点都集中在二叉树的最下一层,这样的二叉树称为满二叉树。原创 2024-05-04 19:32:13 · 756 阅读 · 1 评论 -
栈和队列相关实现
思路:入栈:1、普通栈一定要放,最小栈放的原则是,如果最小栈为空,则放;模拟出队:判断第二个栈是不是空的,如果是,直接取出栈顶元素,如果不为空,将栈1中元素全部放到栈2,取出栈顶元素。模拟出栈:把不为空的队列中size-1个元素放到另一个队列中,最后剩下的这个就是我们模拟出栈的元素。如果采用尾插法入栈:入栈时间复杂度O(n),如有last,为O(1),但是出栈一定是O(n)(1)队列实现栈:两个队列,模拟入栈:放到不为空的队列当中;(2)用栈实现队列:两个栈,模拟入队:放到第一个栈;原创 2025-05-01 20:07:32 · 465 阅读 · 0 评论 -
第二章 线性表
线性表是具有相同特性的数据元素的一个有限序列。特征:所有数据元素类型相同。线性表是有限个数据元素构成的。线性表中数据元素与位置相关,即每个数据元素有唯一的序号。原创 2024-03-25 21:40:00 · 1543 阅读 · 0 评论