![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
weixin_44814121
这个作者很懒,什么都没留下…
展开
-
数据结构小作业——迪杰斯特拉算法求最短路径
文章目录reference思路reference思路1.初始化将源点加入到S中将源点到各个终点的最短路径长度初始化为权值如果源点和顶点之间有弧,则将vi前驱置为v0,即path[i] = v0,否则path[i] = -1.2.循环n-1次选择下一条...原创 2019-12-01 17:14:44 · 267 阅读 · 1 评论 -
图
文章目录referenceterminology图的存储结构顺序存储邻接矩阵关联矩阵链式存储邻接表逆邻接表十字链表邻接多重表图的遍历dfs思路referencelink(《大话数据结构》真是本好书terminology顶点弧弧头弧尾有向图无向图边 无向图中两条弧可以用一条边来表示完全图 有n*(n - 1)/2条边的无向图有向完全图 有n...原创 2019-12-01 14:35:33 · 165 阅读 · 0 评论 -
数据结构小作业——判断顶点之间是否存在长度为k的路径
文章目录reference概要思路reference概要自选存储结构,编写一算法判断无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径(即不含回路)思路不含回路,即要求不能重复访问。这里用一个visited数组标记即可。该图为无向图,那么需要判断,从其中任何一个顶点出发,能否到达另一个顶点。可以用dfs或者bfs,同时在遍历过程中记录路径长度。...原创 2019-11-23 00:20:58 · 2798 阅读 · 2 评论 -
广义表
文章目录参考是什么特点存储结构建立广义表参考是什么广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。LS = (a1, a2,… an)线性表中ai只限于单个元素,而在广义表中,ai可以是单个元素,也可以是广义表特点广义表的元素可以是子表。广义表可以为其他广义表所共享广义表可以是一个递归的表,即广...原创 2019-11-22 23:10:08 · 864 阅读 · 0 评论 -
数据结构小作业——广义表输入二叉树
文章目录问题描述reference思路问题描述广义表输入二叉树,“#”表示空树例A(B(D,E),C(F,#))reference思路老规矩,举几个例子分析下。创建左子树之前,要输入一个"(",遇到“,”表示输入结束创建右子树之前,要输入一个“,”,遇到“)”表示输入结束遇到#表示是空树。怎么创建?递归?状态转换机?这里用状态转换机不能做吧?因为有好多节点啊,要怎么保存?...原创 2019-11-22 23:09:55 · 1576 阅读 · 1 评论 -
数据结构小作业——求二叉树直径以及直径等于长度的一条路径
文章目录问题描述reference思路问题描述试给出算法求二叉树的直径(高度、最大层次数)以及长度等于直径的一条路径(从根到叶子的节点序列)二叉树的直径:树中的两个叶子节点之间最长路径的节点的数目referencelink思路先举几个例子来找一找规律。最大路径可能1.经过根节点——>计算:左子树深度+右子树深度+12.不经过根节点——>计算:是左子树或者右子树的最...原创 2019-10-28 23:47:58 · 821 阅读 · 2 评论 -
数据结构小作业——二叉树表达式加括号
文章目录问题描述参考思路code打印二叉树总问题描述试给出算法将二叉树表达式中序遍历输出并加上相应的括号参考思路先举几个例子看一看,正确输出是((a+(b*(c-d)))-(e/f))不要写成(((a)+((b)*(©-(d))))-((e)/(f)))两种情况:1.叶子节点。只打印节点的值即可2.非叶子节点。那么一定要在最外层加(),然后里面依次是左子树,当前结点值,右子...原创 2019-10-28 22:34:20 · 1013 阅读 · 0 评论 -
数据结构小作业——求结点最近共同祖先
文章目录参考问题描述思路参考问题描述已知在二叉链表表示的二叉树中,root为根结点,p,q,为二叉树中两个结点,试编写算法求距离他们最近的共同祖先思路先举几个实例来分析一下...原创 2019-10-28 18:55:27 · 2679 阅读 · 0 评论 -
数据结构小作业——串连接(块链结构)
文章目录概要reference串存储结构创建块链连接块链总概要以块链结构表示串,试编写将串s插入到串t某个字符之后的算法。referencelink串和线性表相比就是对主要是对子串处理,而不是单个字符。存储结构typedef struct link{ char str[LINKNUM]; struct link *next;}link;创建块链为了几个小bug耽误好多时...原创 2019-10-27 20:25:43 · 3176 阅读 · 2 评论 -
循环移动数组元素
文章目录参考问题描述分析code总结参考link问题描述设计一个算法,将数组A[1:n]中的元素循环右移k位,要求只使用一个元素的附加空间,元素移动或交换次数为O(n).然后这样是不行的。转而去网上求助。假如原数组: 1 2 3 4 5 6 7 需要右移4次,那么我们想要的结果是: 5 6 7 1 2 3 4。1.将1234逆置 变成 43212.将567逆置 变成 7653...原创 2019-11-02 16:27:04 · 650 阅读 · 0 评论 -
骑士遍历问题(回溯法)
文章目录参考概述思路参考link概述骑士游历问题是放在n*n的国际象棋棋盘上的一个马,按照马走"日"字的规则是否能够不重复地走遍棋盘的每个格。思路骑士最后要遍历所有的点。每次运动最多有八种方式。已经去过的点不会再去。解空间:每次有八种方式走到下一个点(剪枝:剪掉去过的点和没法到达的点)没走过的格子标0,走过的标1.为了方便起见,边界直接标1。然后试着在地图外标了一圈1,发现自己...原创 2019-10-14 22:27:04 · 2754 阅读 · 0 评论 -
Leetcode39. Combination Sum(q)
文章目录链接参考思路code链接link参考回溯法通用写法思路code原创 2019-10-07 21:28:37 · 85 阅读 · 0 评论 -
Leetcode46. Permutations
文章目录链接参考思路codepythonc++链接link参考思路回溯法。分别取nums中的所有元素放进temlist中,然后把(nums去掉这个元素的副本)传给递归函数,继续进行。当nums长度为0时说明都取尽了。codepythonclass Solution: def permute(self, nums) : List = [] d...原创 2019-10-07 19:02:05 · 99 阅读 · 0 评论 -
Leetcode94. Binary Tree Inorder Traversal
文章目录链接思路cpp链接link思路递归的很简单,就不用了,在此讨论非递归算法。cpp原创 2019-09-18 15:41:31 · 69 阅读 · 0 评论 -
Leetcode102. Binary Tree Level Order Traversal
文章目录链接思路cpp1.递归2.链接link思路二叉树层序遍历广度优先先在队列中加入根结点。之后对于任意一个结点来说,在其出队列的时候,访问之。同时如果左孩子和右孩子有不为空的,入队列。cpp我自己想出来的思路就是,求出每一层的节点,然后根据每一层的节点,更新下一层的节点,再找出节点相对应的值。真的好麻烦,而且一堆bug,不简洁优雅,不写了。参考别人的思路,是把二维数组的每个...原创 2019-09-18 23:49:32 · 61 阅读 · 0 评论 -
Leetcode572. Subtree of Another Tree
文章目录链接思路cpp链接link思路1.kmp算法和树的结合?但是kmp算法利用了索引,这样能很方便地回退。但是树不行。2.把s树的所有子树都找出来然后看看t树在不在里面?这个可能用python比较方便。cpp直接copy别人的代码然后自行理解/** * Definition for a binary tree node. * struct TreeNode { * ...原创 2019-09-19 18:08:27 · 92 阅读 · 0 评论 -
Leetcode226. Invert Binary Tree
文章目录链接思路cpp1.2.3.python链接link思路感觉应该是用递归来做。每次反转当前结点下的两个,再反转那两个结点下的。cpp1.因为用了递归所以感觉不是很难。刚开始尝试不用子函数来做,但是这个主函数要求,每次必须返回一个TreeNode *。就很麻烦。所以另外写了一个不用返回的函数。/** * Definition for a binary tree node....原创 2019-09-19 18:55:10 · 66 阅读 · 0 评论 -
线性表(数据结构)
文章目录参考笔记线性表存储结构从线性表中获得元素参考《大话数据结构》(这本书还是很易读的,相比严蔚敏老师的书来说,更有趣味性,而且代码可运行)笔记线性表存储结构# define MAXSIZE 20typedef int ElemType; //这样的话ElemType的数据类型就可以替换了 typedef struct{ ElemType data[MAXSIZE]; int...原创 2019-09-24 19:24:55 · 82 阅读 · 0 评论 -
地图染色问题(回溯法)
文章目录参考概述回溯法解空间空间结构剪枝图算法程序分析算法程序设计代码参考linklink概述就是用颜色去染地图上不同的行政区域,使得相邻的区域不同色即可。首先我们要解决的第一个问题是,我们最少使用多少种颜色就可以解决任意多块行政区域的染色。这个问题的答案,伟大的数学家已经告诉我们了,那就是只需四种颜色。这也就是所谓的四色定理。回溯法第一感觉,遇到错误能及时止损的暴力?(误回溯法...原创 2019-09-26 15:15:24 · 7340 阅读 · 0 评论 -
八皇后问题(回溯法)
文章目录参考概述分析code注意参考概述如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?分析怎么描述?想法一:用坐标描述皇后的位置。每次确定一个新的皇后的位置的时候,用一个判断函数判断其是否能被其他皇后吃掉。由于两个皇后肯定不能处于同一行,所以遍历的时候,第i个皇后位于第i行,遍历其列数。嗯,看了看网上,想法和我差不多。优化点:我的想法是用一...原创 2019-09-26 23:45:00 · 135 阅读 · 0 评论 -
简化的背包问题
文章目录参考概述思路code参考概述有n个物品重量分别为(),能否从这n个物品中挑选若干物品使重量为T。若有解给出全部解思路因为要是有解则给出全部解。dfs,回溯法。解空间:每个东西取或者不取两种情况。剪枝函数:当>=的时候返回。code#include<stdio.h>#include<iostream>#define SIZE 8usin...原创 2019-09-27 21:01:47 · 566 阅读 · 0 评论 -
多项式相乘(链表)
文章目录概述思路1.概述一元多项式A,B按降次排列,用带头结点的链表存储,求C = A * B思路暑假的时候写过多项式A,B相加的,那个比较简单。这个要相乘,那就必须把A中的每一项分别和B中的每一项相乘。所以就是,A中的每一项分别和B中的所有相乘,得到一个链表,然后把所有链表相加?感觉能做,但是好麻烦啊。有没有更简单的做法呢?去网上搜索,emmm,快速傅里叶变换?快速数论变换?dbq我...原创 2019-09-27 21:47:59 · 3287 阅读 · 1 评论 -
Leetcode90. Subsets II
文章目录链接思路python链接link思路78.subset 的拓展和78题不同的地方在于,这个相当于允许出现重复元素的集合。pythonclass Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: result = [] ele_num = ...原创 2019-10-07 16:49:52 · 93 阅读 · 0 评论 -
Leetcode144. Binary Tree Preorder Traversal
文章目录链接思路c++1.递归2.非递归python链接link思路递归c++1.递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) :...原创 2019-09-17 10:48:54 · 66 阅读 · 0 评论