随笔分类 -  数据结构随笔

记录鄙人在学习数据结构过程中重点的总结归纳。
摘要:将整个链表全转置的算法: template<typename T> class Chain{ //链表的类定义 public: //公共成员函数 void Reverse(); private: class ChainNode{ //链表结点定义,嵌套类 public: ChainNode* lin 阅读全文
posted @ 2021-12-08 16:12 天涯海角寻天涯 阅读(251) 评论(0) 推荐(0) 编辑
摘要:迭代器是一种用来一个一个地获取容器类中所有元素的对象,在数据结构课程中我们经常需要遍历或获取数据结构中所存储的数据,使用迭代器能大大方便我们的操作。 下面我们来介绍单向链表的一种前向迭代器。 注意:该迭代器需要作为自定义链表类的公共成员,即声明为嵌套公共类。 class ChainIterator{ 阅读全文
posted @ 2021-12-08 15:41 天涯海角寻天涯 阅读(93) 评论(0) 推荐(0) 编辑
摘要:一、串的模式匹配 设有两个串S和pat,若在S中查找是否有与pat相同的子串,则称串S为目标,称pat为模式,串的模式匹配即为查找模式串在目标串中的匹配位置的运算。 (1)朴素的模式匹配(B-F算法) 朴素的模式匹配想法十分简单粗暴:将pat中的每个字符依次与S中的字符比较,如果某一位匹配失败,则将 阅读全文
posted @ 2021-12-05 16:49 天涯海角寻天涯 阅读(405) 评论(0) 推荐(0) 编辑
摘要:一、稀疏矩阵的类定义(使用三元组储存) struct MatrixTerm{ int row; int col; int value; MatrixTerm(int r=-1,int c=-1,int val=-1):row(r),col(c),value(val) { } }; class Mat 阅读全文
posted @ 2021-12-02 09:32 天涯海角寻天涯 阅读(573) 评论(0) 推荐(1) 编辑
摘要:本文主要介绍数组的两种实际应用——用数组存储多项式、用一个结构数组来存储稀疏矩阵; 阅读全文
posted @ 2021-12-02 09:12 天涯海角寻天涯 阅读(789) 评论(0) 推荐(1) 编辑
摘要:本文介绍一些在数据结构课程乃至以后的算法课程内能用到的一些基本概念 阅读全文
posted @ 2021-11-29 23:44 天涯海角寻天涯 阅读(223) 评论(1) 推荐(0) 编辑
摘要:本文是给出一种二叉树模板的实现以及四种forward迭代器 阅读全文
posted @ 2021-11-21 10:56 天涯海角寻天涯 阅读(107) 评论(0) 推荐(1) 编辑
摘要:本文介绍最小生成树以及生成最小生成树的两种算法 阅读全文
posted @ 2021-11-13 21:29 天涯海角寻天涯 阅读(553) 评论(3) 推荐(1) 编辑
摘要:本文介绍图的两种重要遍历算法:深度优先搜索与广度优先搜索 一.深度优先搜索(DFS) 深度优先搜索是一个不断探查与回溯的过程,其思想是递归。树的先序遍历可以看成是深度优先搜索的一种情况。在探查的每一步中,算法都记录有一个当前顶点。最初的当前顶点,也即函数指定的开始顶点。在每一步的探查过程中,首先访问 阅读全文
posted @ 2021-11-07 22:06 天涯海角寻天涯 阅读(1112) 评论(0) 推荐(1) 编辑
摘要:二叉树作为一种十分重要的数据结构,其天然的递归性质使得在解决有关二叉树的问题时可以使用递归的方法。递归是解决树的有关问题的最有效和最重要的方法之一。 在开始前,我们先来回顾一下有关递归(recurve)的概念: 数学以及程序设计方法中为递归下的定义是:若一个对象部分地包含它自己,或用它自己给自己定义 阅读全文
posted @ 2021-11-07 18:07 天涯海角寻天涯 阅读(123) 评论(0) 推荐(1) 编辑
摘要:三种不同次序的二叉树遍历的递归算法结构相似,只是访问根节点以及遍历左子树、遍历右子树的先后次序不同而已。如果把访问根节点这个不涉及递归的语句抛开,则三个算法走过的路线是一样的。在递归执行的过程中,前序遍历情形是每进入一层 递归调用时先访问根节点,再依次访问它的左,右子树递归调用。中序遍历的情形是从左 阅读全文
posted @ 2021-11-01 09:25 天涯海角寻天涯 阅读(206) 评论(0) 推荐(1) 编辑