数据结构
文章平均质量分 67
ExcesiveYue
大一学生,坚持每天自己作笔记,希望懒惰的自己会有改变
展开
-
栈和队列的简单实现
1、栈的创建:我们接下来通过链表的形式来创建栈,方便扩充。代码实现:栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。 LinkedList数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素,和数组的顺序存储结构(如:ArrayList)相比,插入和删除比较原创 2017-12-25 12:15:05 · 283 阅读 · 0 评论 -
上三角矩阵储存为一维数组
压缩矩阵 ,将矩阵存储为一维矩阵,同时可以解压缩 其实题目记不太清了 。。。。刚刚开始做这道题的时候 ,我是用n*n矩阵来储存数据 ,然后定义了一个压缩方法和解压方法,交完作业老师说,这道题的原意不是这样。。。。。。你应该是用一个一维数组存储数据,这样才能达到节省空间的目的,然后输出的时候显示式n*n的矩阵。。。。然后我又重新改了,以下是我的答案,如有错误,添加微信macforyou1原创 2017-12-24 19:43:52 · 8536 阅读 · 1 评论 -
最短路径算法Dijkstra算法
想写一篇关于最短路径的算法发现自己画图不够好,看到一篇博客简单清楚的解释了算法的含义,搬运过来了,后面是我补充的。转自https://www.cnblogs.com/nigang/p/3658990.html以顶点A作为出发点为例,来说明Dijkstra算法过程。(1)设置两个集合,S集合和V集合。S集合初始只有源顶点即顶点A,V集合初始为除了源顶点以外的其他所有顶点。设置一个...转载 2018-07-31 21:35:26 · 644 阅读 · 1 评论 -
最短路径Floy算法
1.定义概览Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。Floyd-Warshall算法的时间复杂度为O(N3),空间复杂度为O(N2)。 2.算法描述1)算法思想原理: Floyd算法是一个经典的动态规划算法。用通...原创 2018-08-02 13:59:12 · 329 阅读 · 0 评论 -
数据结构经典习题 之 二叉排序树
设计一个算法 ,判断给定的二叉树是否为二叉排序树 ,假设二叉排序树已经存储在二叉链表存储结构中,树节点个数为n,节点值为int型。(1)给出基本设计思想(2)根据设计思想,采用c或c++语言描述算法,并在关键之处给出注释 。(3)分析算法的时间复杂度和空间复杂度 这道题我第一次做的时候写的代码如下,int judge(BNode *bt){if (bt==NULL...原创 2018-11-22 22:40:16 · 4764 阅读 · 0 评论 -
数据结构之经典习题 排序
设6个有序表A,B,C,D,E,F分别含有10,35,40,50,60和200个关键字,各表中关键字按升序排列。要求通过5次两两合并,将6个表最终合并成1个升序表并在最坏情况下比较的总次数达到最小,请回答以下问题: (1)给出完整的合并过程,并求出最坏情况下比较的总次数。 (2)根据你的合并过程,描述n(n≥2)个不等长升序表的合并策略,并说明理由。 (合并2个有序表最坏情...原创 2018-11-22 23:35:52 · 3152 阅读 · 0 评论 -
排序知识点小结
1.时间复杂度平均:快些以nlong2n的速度归队,其余时间复杂度都是o(n^2),一个特殊的是基数排序时间复杂度为O(d(n+rd))最坏情况下:快速排序时间复杂度为O(n^2),其余与平均相同。最好情况下: 容易插,起的好 由(n^2)--->O(n)2.空间复杂度(快点回家)平均情况:O(1),快速排序 nlon2n ,归并排序O(n),基数排序O(rd)...原创 2018-11-22 23:53:22 · 466 阅读 · 0 评论