随笔分类 -  数据结构

摘要:#include<iostream> #define MAX 20 using namespace std; typedef enum{DG,DN}GraphKind; typedef struct ArcNode{ int tVex,hVex; struct ArcNode *tLink,*hLi 阅读全文
posted @ 2021-04-13 13:54 NoerForest 阅读(107) 评论(0) 推荐(0)
摘要://create graph by adjacent list #include<iostream> #define MAX 20 using namespace std; //定义图的类型 typedef enum{DG,UDG,DN,UDN}GraphKind; //定义弧结点 typedef 阅读全文
posted @ 2021-04-11 20:58 NoerForest 阅读(294) 评论(0) 推荐(0)
摘要://create graph #include<iostream> #include<iomanip>//打印邻接矩阵时提供setw函数来置表位 #define MAX 20//图的顶点个数最大值,也可以不设置这个,用堆分配 using namespace std; typedef enum{DG, 阅读全文
posted @ 2021-04-11 13:29 NoerForest 阅读(396) 评论(0) 推荐(0)
摘要:后序线索二叉树中,结点的后继: 如果结点的双亲有右孩子,则结点的后继为双亲的右子树中第一个被访问的结点 如果结点的双亲没有右孩子,则结点的后继为双亲 如果结点为双亲的右孩子,则结点的后继为双亲 因为找到后序遍历中,找到结点的后继需要知道节点的双亲,所以可以用三叉链表(trifurcate linke 阅读全文
posted @ 2021-04-03 11:36 NoerForest 阅读(2330) 评论(0) 推荐(0)
摘要:1.遍历前序线索二叉树 void preTraverse(ThrBiTree head){ ThrBiTree p=head->lChild; while(p!=head){ visit(p->data); while(p->lTag==0){ p=p->lChild; visit(p->data) 阅读全文
posted @ 2021-04-02 22:17 NoerForest 阅读(1111) 评论(0) 推荐(0)
摘要:A.遍历二叉树是以一定的规则将二叉树中的结点排列成一个线性序列(DLR、LDR、LRD、DRL、RLD、RDL),这实质上是对非线性结构进行线性化操作。 B.将二叉树线索化能够不用递归,通过找到后继来线性地遍历二叉树,虽然时间复杂度仍为O(n),但常数因子更小,且不需要设栈 C.前驱、后继的信息是在 阅读全文
posted @ 2021-04-02 20:21 NoerForest 阅读(578) 评论(0) 推荐(0)
摘要:一、目标: 1.输入中缀表达式,转化为前缀表达式,输出前缀表达式字符串 2.输入前缀表达式,输出计算结果 3.输入中缀表达式,通过转化为前缀表达式输出计算结果 二、与 中缀->后缀的不同: 1.中缀->后缀 是从左往右扫描中缀表达式字符串;扫描到操作数直接输出,而操作符是在弹栈时输出,即得到后缀表达 阅读全文
posted @ 2021-04-02 16:09 NoerForest 阅读(442) 评论(0) 推荐(0)
摘要:目标: 1、输入中缀表达式,输出后缀表达式字符串 2、输入后缀表达式,计算结果,输出结果 3、输入中缀表达式,转换成后缀表达式计算结果,输出结果 第三个目标是前两个的合并,对于1,操作数在压栈前输出,操作符在弹栈时输出。 辅助函数:(1)构建优先级(2)四则运算 map<char,int>isp;/ 阅读全文
posted @ 2021-04-02 12:32 NoerForest 阅读(233) 评论(0) 推荐(0)
摘要:非递归前序遍历二叉树 1 void preTraverse(const BiTree &T){ 2 //initialStack(stack) 3 BiTree stack[MAX]; 4 int top=-1; 5 BiTree p=T; 6 //while(!stackEmpty(stack)| 阅读全文
posted @ 2021-03-30 21:07 NoerForest 阅读(120) 评论(0) 推荐(0)
摘要:前序+中序 非递归 leetcode#105 中序+后序 非递归 leetcode#106 后序LRD的倒序DRL其实是从右往左的前序DRL 前序+后序 非递归 leetcode#889 先序+中序 构造二叉树 递归 1 #include<iostream> 2 using namespace st 阅读全文
posted @ 2021-03-30 16:27 NoerForest 阅读(145) 评论(0) 推荐(0)
摘要://利用队列来实现层序遍历,先让根结点入队,之后,每次从队头出队一个结点并访问,同时将该结点左孩子与右孩子入队(如果非空的话),循环直到队空 1 //Level Order Traverse 2 #include<iostream> 3 #define MAX 100 4 using namespa 阅读全文
posted @ 2021-03-30 09:49 NoerForest 阅读(141) 评论(0) 推荐(0)
摘要:输入带空树的先序序列,空树用0表示,构造一棵二叉树 1 #include<iostream> 2 using namespace std; 3 4 typedef struct BiTNode{ 5 public: 6 int data; 7 struct BiTNode *lChild,*rChi 阅读全文
posted @ 2021-03-30 09:44 NoerForest 阅读(734) 评论(0) 推荐(0)