PAT考试模板
一只思考人生的喵咪c
老和山职业技术学院CS硕士在读、机器学习和深度学习爱好者、网络安全萌新、重度拖延症患者
展开
-
PAT模板——python实现排序算法
闲来无事,借着写排序算法实现一遍复习一下python的语法~ class Sort(object): def __init__(self, array): self.array = array def _swap(self, index_a, index_b): temp = self.array[index_a] self.array[index_a] = self.array[index_b] self.array[ind原创 2020-05-30 10:34:09 · 179 阅读 · 0 评论 -
PAT刷题模板——最短路径算法
图的最短路径算法 dijkstral算法 dijkstral算法适用于无负权边的图。 邻接矩阵形式 图结构和辅助数组 const int INF = 0x3fffffff; // inf定义为了int的上限 // Cost为边权矩阵; weight为点权,若有则可以使用 int G[MAXN][MAXN], Cost[MAXN][MAXN], weight[MAXN]; // weight_cal若题目中要求点权的累计最大则可使用 cost_cal若题目中要求边权累计最大则可以使用 int dist[M原创 2020-05-24 11:37:36 · 223 阅读 · 0 评论 -
PAT刷题模板——LCA最近公共祖先
前序+中序找某两个节点的最近公共祖先 根据前序+中序建树的思想找LCA void lca(int root, int start, int end, int a, int b){ // root: pre的根下标 start:中序起始下标 end:中序结束下标 // a和b是需要找到的公共节点 if(start > end) return; // pos定义为map<int, int>, 是值与中序下标之间的映射 int i = pos[pre[root]原创 2020-05-23 22:53:47 · 193 阅读 · 0 评论 -
PAT刷题模板——BST和AVL树
BST模板 // BST 二叉查询树 typedef struct TNode { int val; struct TNode *left, *right; } TNode; // 插入结点 TNode* insert(TNode *root, int val){ if(root == NULL){ root = new TNode(); root->val = val; root->left = root->right = NULL; } else if(val &原创 2020-05-23 22:41:08 · 193 阅读 · 0 评论 -
PAT刷题模板——堆
堆 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆分为大根堆与小根堆。 大根堆定义: 大根堆是一棵完全二叉树 根节点的元素均大于(等于)子节点的元素。 任意一颗子树也均满足1和2的定义 堆的操作–以大根堆为例(基于C++语言) 堆的定义(以下均分为数组定义方式和STL定义方式) int heap[MAXN]; vector<int> heap(MAXN); 建堆 void downAdjust(int heap[], int low, int high){ // heap的in原创 2020-05-23 22:35:49 · 178 阅读 · 0 评论