
数据结构与算法
文章平均质量分 80
数据结构是计算机存储、组织数据的方式。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
veejaLiu
nice to meet you.
展开
-
树的应用——并查集
首先,什么是并查集?并查集是一种简单的集合表示。我们可以简单的思考一下这个名字,“集”应该就是集合的意思,而“并”和“查”,估计是两种动作或者形容。这个我们后面慢慢就知道了。一个结合中有若干个元素,我们通常将该集合划分成若干个子集。我们通常用树的双亲表示法,作为并查集的存储结构。我们一般将每个子集,表示成树的形式。这些树组成了该并查集的森林。双亲表示法中,我们用每个孩子结点的指针指向双亲结点,来表示其中的逻辑结构。通常用数组元素的下标代表元素名,用根结点的下标代表子集合名,根结点的双亲结点原创 2021-03-15 11:22:02 · 965 阅读 · 0 评论 -
树的存储结构&&树和森林的遍历
树的存储结构1. 双亲表示法采用一组连续的存储空间来存储每个结点,同时在每个结点中增设一个伪指针,指示双亲结点在数组中的位置。根节点的下标为0,其伪指针域为-1。# define MAX_TREE_SIZE 100typedef struct{ ElemType data; int parent;}PTNode;typedef struct{ PTNode nodes[MAX_TREE_SIZE]; int n;}PTree;2. 孩子表示法将每个结点的孩子结点都用单链表连接原创 2021-03-15 09:43:12 · 479 阅读 · 0 评论 -
线索二叉树简述
线索二叉树首先我们回忆一下二叉树的前中后序遍历方式:先序遍历序列:1 2 4 5 3 6中序遍历序列:4 2 5 1 6 3后序遍历序列:4 5 2 6 3 1我们通过这样的遍历,由一个树形结构得到了一个线性的结构(遍历序列)。在这个线性序列中,除了第一个结点和最后一个结点,每个结点都拥有一个前驱和后继。那么在二叉树中,我们能不能不只体现结点的父子关系,也引入结点的前驱后继关系呢?由此,我们引入了线索二叉树。我们之前说过二叉链表,我们知道在一个二叉链表中,n个结点会有n+1个空指针。接原创 2021-03-12 11:51:10 · 2927 阅读 · 3 评论 -
二叉树的存储和遍历
二叉树的存储结构:顺序存储,链式存储。二叉树的遍历,前中后序遍历,层次遍历,根据遍历序列构造二叉树。原创 2021-03-10 11:47:10 · 705 阅读 · 0 评论 -
“树”和“二叉树”的基本定义和性质
一、树1.1 树的概念1.2 基本术语1.3 树的性质二、二叉树2.1 二叉树的定义2.2 满二叉树2.3 完全二叉树2.4 二叉排序树2.5 平衡二叉树2.6 二叉树的性质原创 2021-02-27 17:27:30 · 518 阅读 · 1 评论 -
树、森林与二叉树之间的相互转换方法
树、二叉树与森林的相互转换本文只给出树、森林与二叉树之间的转换方法,而详细的证明过程不在本文讨论范围之内。树 → 二叉树在所有兄弟结点之间加一连线。对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。二叉树 → 树是树转换为二叉树的逆过程。加线。若某结点X的左孩子结点存在,则将这个左孩子的右孩子结点、右孩子的右孩子结点、右孩子的右孩子的右孩子结点…,都作为结点X...原创 2019-12-16 17:09:12 · 8789 阅读 · 12 评论 -
括号检验匹配——使用栈实现
括号检验匹配问题问题描述假设一个算术表达式中包含圆括弧、方括弧和花括弧三种类型的括弧,编写一个判别表达式中括弧是否正确配对的函数。思路:数据结构选择:栈。初始化一个栈。从第一个字符开始检索整个字符串:如果有([{,就把这个字符压入栈。如果遇到)]}:先判断栈是否为空,如果栈为空,括号匹配错误,函数返回0。如果栈不空,判断栈顶元素是否可以和响应字符匹配。如果匹配,把栈顶元素抛出,程序...原创 2019-12-14 17:26:59 · 1740 阅读 · 0 评论 -
分治法——归并排序
# 归并排序 归并排序是成功应用分治法的完美例子,归并排序是按照记录在序列中的位置对序列进行划分。## 【问题】应用归并排序方法对一个记录序列进行升序排序。归并排序(merge sort)的分治策略如下:1. 划分:将待排序的序列r~1~,r~2~,···,r~n~划分成两个长度相等的子序列r~1~,···,r~n/2~和r~n/2+1~,···,r~n~。2. 求解子问题:分别对这两个子序列进行排序,得到两个有序的子序列。3. 合并:将这两个有序子序列合并成一个有序的子序列。原创 2019-11-20 17:50:41 · 1505 阅读 · 0 评论