随笔 - 46, 文章 - 0, 评论 - 0, 阅读 - 9596

随笔分类 -  数据结构

摘要:###所需开辟的变量 三个链表节点的指针,分别指向前一个节点,当前节点,以及当前节点的下一个节点 ###所需要注意的事情 1.每一次只改变一个指针 2.head节点之前要有一个nullpter指针 ##反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 class Solu 阅读全文

posted @ 2022-07-09 10:32 wuqiu 阅读(32) 评论(0) 推荐(0) 编辑

摘要:##字典树 ###字典树的定义 字典树是一种以树状结构来表示字符串的一种数据结构,通过在树上遍历,来确定给定的某一字符串是否曾经出现过。它可以最大限度的减少比较次数,在字符串比对上查询效率很高。 ###字典树的实现 在这里笔者采用了二维数组的方式对字典树进行构造。当然,字典树的表示方式并不只有这一种 阅读全文

posted @ 2022-07-07 23:33 wuqiu 阅读(26) 评论(0) 推荐(0) 编辑

摘要:##实现并查集需要什么? 1.一个存储每个元素父亲的容器 2.一个查询每个元素祖先的函数 3.一个为元素添加祖先的函数 ##操作步骤 ###1.首先对pre容器进行初始化操作 使每个元素的祖先都是它自己,或者都初始化为-1 for(int i = 0 ;i <= pre.size()-1 ; i + 阅读全文

posted @ 2022-06-21 23:21 wuqiu 阅读(18) 评论(0) 推荐(0) 编辑

摘要:##线段树的定义 线段树是一颗二叉搜索树,它的每一个节点都有两个子节点,每一个节点存储着一个区间的有关信息(可以是区间和,也可以是区间的最大值等) 下图所示为 arr 数组区间和在线段树上的表示方法。 ##线段树的实现 使用数组存储二叉树的形式对线段树进行存储,在图中我们使用红色圆圈标记每一个节点的 阅读全文

posted @ 2022-06-07 15:52 wuqiu 阅读(49) 评论(0) 推荐(0) 编辑

摘要:###需要的数据结构 vector<vector<int>> //用来存储结果 vector<int> //用来存储每一层节点值 queue<Node*> //一个节点的队列 ###计算方法 ###二叉树的层序遍历 /** * Definition for a binary tree node. * 阅读全文

posted @ 2022-06-03 23:49 wuqiu 阅读(117) 评论(0) 推荐(0) 编辑

摘要:###弗洛伊德算法进行预处理 如果 i → k && k → j 那么就有 i → j ,弗洛伊德算法时间复杂度为 n^3。具体做法为将集合中每一个数拿出,再双重循环遍历起点 i 和重点 j ,如果 i 到 j 之间可以通过 k 相连接,则 i 到 j 之间可达。 ###双重循环求解 从集合中拿出一 阅读全文

posted @ 2022-06-03 00:12 wuqiu 阅读(98) 评论(0) 推荐(0) 编辑

摘要:###删除节点 对于一个要被删除的节点来说,它会处于两种状态,一种是左子树右子树至少有一个是NULL,另一种是左子树右子树都存在。 对于有NULL的节点来说,删除它很简单只需要将其删掉并用子节点替换它的位置即可。 if(root->right == NULL){//右子树为空 tmp = root; 阅读全文

posted @ 2022-06-03 00:00 wuqiu 阅读(407) 评论(0) 推荐(0) 编辑

摘要:需要注意的地方 选择的方法是以一支链表作为结果链,另一只加上去,这就要注意结果链比另一支短的情况,在相加的同时,我定义了一个 before 用来记录当前节点的前一个节点的指针,因为相加操作结束时,结果链节点指针是NULL,不便于将第二条链接上去。 ##两数相加 给你两个 非空 的链表,表示两个非负的 阅读全文

posted @ 2022-06-02 00:15 wuqiu 阅读(56) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示