![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
zhaoze13
记录一个菜鸟的成长过程
展开
-
数据结构与算法(一)
数据结构与算法数据结构逻辑结构数据对象中数据元素的相互关系集合结构:同属于一个集合线性结构:一对一的关系树形结构:一对多的关系图形结构:多对多的关系物理结构逻辑结构在计算机中的存储形式顺序存储:存放在地址连续的存储单元里,逻辑关系和物理关系是一致的链式存储:存放在任意的存储单元里面,可以是连续的,也可以是不连续的,存储关系不能反映逻辑关系。(需要指针来存放数据存储的地址)算...原创 2019-06-26 17:31:32 · 140 阅读 · 0 评论 -
pat数据结构与算法6-3 求链式表的表长
求链式表的表长原创 2019-08-23 22:48:38 · 214 阅读 · 0 评论 -
pat数据结构与算法6-2 顺序表操作集
顺序表的建立,查找,插入,删除原创 2019-08-23 22:44:54 · 1069 阅读 · 0 评论 -
pat数据结构与算法6-1 单链表逆转
pat数据结构与算法6-1 单链表逆转原创 2019-08-23 09:15:08 · 313 阅读 · 0 评论 -
数据结构与算法——第一章·绪论
第一章绪论 线索Cues 笔记Notes 1.1数据结构的研究内容 1.2基本概念和术语 1.3抽象数据类型的表示和实现 1.4算法与算法分析 1.1数据结构的研究内容 1.2基本概念和术语...原创 2019-07-30 17:33:57 · 157 阅读 · 0 评论 -
数据结构与算法(十一)
散列表(哈希表)查找顺序表查找:依次遍历有序表查找:二分法查找散列表查找:散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key).这种对应关系f称为散列函数,又称为哈希(Hash)函数。采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(Hash table)。散列表的查找步骤:当存储记录时,通...原创 2019-07-11 18:04:25 · 137 阅读 · 0 评论 -
数据结构与算法(六)
树的存储结构实现树结构的存储方式双亲表示法以双亲作为索引的关键词的一种存储方式以一组连续空间存储树的结点,同时在每个结点中,附设一个指示其双亲结点在数组中位置的元素所以可以根据某结点的parent指针找到它的双亲结点,所用时间复杂度为O(1),索引到parent=-1,表示找到树结点的根。如果要知道某结点的孩子,则要遍历整个树。孩子表示法多重链表方案一:根据树的度,声明足够...原创 2019-07-06 17:44:38 · 220 阅读 · 0 评论 -
数据结构与算法(五)
汉诺塔三根针XYZ,X上64个圆盘第一步将1~63个盘子借助Z移到Y上第二步将第64个盘移到Z上第三步将Y针上的63个盘借助Z移动到X上利用递归,一层一层剥开设计思路:if n=1时,x->zelse 执行n-1的操作,直到n-1=1八皇后问题字符串由零个或多个字符组成的有限序列字符串的存储结构顺序存储是用一组地址连续的存储单元来存储串中的字符序列,按照预定义...原创 2019-07-05 18:01:28 · 281 阅读 · 0 评论 -
数据结构与算法(十)
多路查找树(multi-way search tree)多路查找树的特点是其每一个结点的孩子数可以多于两个,且每一个结点处可以存储多个元素。目的:减少CPU访问硬盘的次数2-3树2-3树:每一个结点都具有两个孩子(2结点)或三个孩子(3结点)。一个2结点包含一个元素和两个孩子(或没有孩子),且与二叉排序树类似,左子树包含的元素小于该元素,右子树包含的元素大于该元素。不过,与二叉排序树不...原创 2019-07-10 21:46:50 · 104 阅读 · 0 评论 -
数据结构与算法(九)
AOE网:在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这种有向图的边表示活动的网称为AOE网。AOE网中没有入边的顶点称为始点或源点,没有出边的顶点称为终点或汇点。关键路径AOE网中权值最大的边为关键路径etv(Earliest Time Of Vertex):事件最早发生时间,就是顶点的最早发生时间ltv (Latest Time...原创 2019-07-10 17:22:25 · 187 阅读 · 0 评论 -
数据结构与算法(四)
双向链表前驱结点后继结点双向链表的插入操作s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s;注意插入的顺序双向链表的删除操作双向循环链表用空间换取性能栈的定义是一种重要的线性结构线性表(后进先出),它要求只在表尾进行删除和插入操作栈的插入操作(Push)...原创 2019-07-04 17:26:36 · 159 阅读 · 0 评论 -
数据结构与算法(八)
马踏棋盘算法(骑士周游问题)在8*8的方格棋盘,按照“马”走棋的规则,将“马”进行移动,要求每个方格只能进入一次,最终使“马”走遍棋盘64个方格。回溯法:递归和深度优先搜索哈密尔顿路径:经过图G中每个顶点,且只经过一次的一条轨迹。如果这条轨迹是一条闭合路径(从起点出发不重复的遍历所有点后仍能回到起点),那么这条路径称为哈密尔顿回路。广度优先遍历(BreadthFirstSearch),广度...原创 2019-07-09 21:55:51 · 226 阅读 · 0 评论 -
数据结构与算法(三)
头指针头指针式指链表指向第一个结点的指针,若链表有头节点,则是指向头节点的指针头指针具有标识作用,所以常用头指针冠以链表的名字无论链表是否为空,头指针不为空头指针是链表的必要元素头结点头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般无意义(但也可用了存放链表的长度)有了头结点,对于在第一元素结点前插入结点和删除第一结点操作与其他结点的操作就统一头结...原创 2019-07-03 17:43:40 · 110 阅读 · 0 评论 -
数据结构与算法(七)
图图是由顶点的有穷非空集合何顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。线性表中我们把数据元素叫元素,树中叫结点,在图中数据元素我们称之为顶点线性表可以没有数据元素,称为空表,树中可以没有结点,叫做空树,而图结构在教材中强调顶点结合V要有穷非空线性表中,相邻的数据元素之间具有线性关系,树结构中,相邻两层的结点具有层次关系,...原创 2019-07-08 22:35:09 · 227 阅读 · 0 评论 -
数据结构与算法(二)
常见的时间复杂度O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)算法分析最坏情况平均情况 平均运行时间是期望的运行时间最坏运行时间空间复杂度空间换时间 时间换空间算法的空间复杂度通过计算算法所需的存储空间实现算法的空间复杂度计算公式S(n)=O(f(n)),其中n...原创 2019-06-27 17:21:18 · 114 阅读 · 0 评论 -
pat数据结构与算法6-4 链式表的按序号查找
6-4 链式表的按序号查找 (10 分)本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;...原创 2019-08-23 22:51:48 · 215 阅读 · 0 评论