自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (1)
  • 收藏
  • 关注

原创 PAT甲级刷题总结

文章目录**四则运算与堆栈:****查找**二分查找 O(logN)two pointers(利用数列递增的思想)复杂度O(n)**树的遍历**两种题型:dfs和利用先中后序遍历序列特点写递归BST**并查集****堆****图**概述图的遍历dfs解决无权图最短路径Dijkstra求有权图最短路径图的连通性判断(DFS或并查集)拓扑排序**C++**输入输出math.h头文件algorithm头文件cctype头文件STLstringmap(按照键从小到大排序)vector运算符重载set引用和传参**

2020-09-13 14:23:36 416

原创 数据结构

基本概念知识点总结线性结构树图排序散列查找KMP

2019-08-11 11:50:58 200

原创 05-树8 File Transfer

题目思路集合:C——查找元素所在集合;I——集合的合并核心代码

2019-06-02 22:19:28 116

原创 05-树7 堆中的路径

题目思路最小堆的建立路径的输出——由二叉树父子关系回溯到堆顶核心代码#include<stdio.h>#include<stdlib.h>#define mindata -20000typedef struct HNode* Heap;struct HNode{ int* data; int size; int capacity;};Hea...

2019-06-02 21:05:24 117

原创 04-树6 Complete Binary Search Tree

题目思路CB(S)T——对完全二叉树而言,如果树结点数已知,那么树结构就确定,即对每一个结点而言,其左树和右树个数可知;对二叉搜索树而言,小数在左,大数在右,故可由左右树包含结点个数,递归找根;根据二叉树的结构特点(每次递归可根据父结点位置得到子结点的位置),直接填充即可。level order traversal核心代码int getLeftTreeSize(int N)//已知...

2019-06-02 20:33:48 103

原创 04-树5 Root of AVL Tree

题目思路AVL树的动态调整操作

2019-06-02 19:03:40 103

原创 04-树4 是否同一棵二叉搜索树

题目思路二叉搜索树的建树操作核心代码typedef struct TreeNode* BST;struct TreeNode{ int data; BST left; BST right;};

2019-06-02 18:45:33 92

原创 03-树3 Tree Traversals Again

题目思路方法一:建实体树根据Push,Pop操作顺序(本质是先序遍历顺序:先建根,再填充其左树、如果左树已填充,填充其右树)建树,再后序遍历输出。方法二:抽象树:根据先序序列和中序序列得到后序序列/*方法一*/int plantTree(int N,struct BinTree T[]){ char op[5]; int data; Ptrs s; s=...

2019-06-02 14:36:23 87

原创 03-树2 List Leaves

题目思路数组存储二叉树结构二叉树的层序遍历(用队列),遍历过程中输出叶子结点代码/*树结构*/typedef struct TreeNode* BinTree;typedef struct QNode* Queue;struct TreeNode{ int left; int right;};/*队列结点*/struct Node{ ...

2019-06-02 10:24:47 89

原创 03-树1 树的同构

题目给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。思路建树A,B、对A每一个树结点,在树B中找到相应结点,比较其左右儿子是否相同注意C语言char类型数据的输入代码typ...

2019-06-01 15:18:24 131

转载 集合及运算

并查集问题——合并集合、查某元素属于什么集合集合存储的实现:使用树结构查找某个元素所在集合typedef struct Node{ ElementType Data; int parent;}SetType;int Find(SetType S[],ElementType X){ /* 在数组S中查找值为X的元素所属的集合 */ /* Ma...

2019-06-01 13:23:46 438

转载 哈夫曼树及哈夫曼编码

概念typedef struct TreeNode* HuffmanTree;struct TreeNode{ int weight; HuffmanTree Left,Right;};typedef struct HNode* Heap;struct HNode{ HuffmanTree Elements; int Size; int Capaci...

2019-06-01 12:36:45 494

转载 堆(Heap)

堆的定义优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是 依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。堆的抽象数据类型描述以最大堆为例•MaxHeap Create( int MaxSize ):创建一个空的最大堆。•Boolean IsFull( MaxHeap H ):判断最大堆H是否已满。•Insert( MaxHeap H, Ele...

2019-06-01 00:03:59 140

转载 平衡二叉树(AVL)

概念二叉搜索树的查找效率与树的深度有关平衡因子(BF):BF=HL-HR(HL——左子树高度;HR——右子树高度)平衡二叉树(Balanced Binary Tree/AVL树):空树,或者任一结点左、右子树高度差的绝对值不超过1,即==|BF(T) |≤ 1 ==...

2019-05-31 21:27:04 530

原创 二叉搜索树——动态查找

二叉搜索树(BST):一棵二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。...

2019-05-31 19:33:28 439

原创 二叉树的遍历

先序遍历递归算法非递归算法中序遍历后序遍历层序遍历

2019-05-30 20:13:07 89

转载 二叉树及存储结构

定义二叉树T:一个有穷的结点集合。这个集合可以为空若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成特殊的二叉树斜二叉树(Skewed Binary Tree)完美二叉树(Perfect Binary Tree)/满二叉树(Full Binary Tree)完全二叉树(Complete Binary Tree):有n个结点的二叉树,对树中结点按从上至下、...

2019-05-30 15:26:47 315

转载 树的定义及表示

树的定义树的概念当n=0时,称为空树;对于任一棵非空树(n> 0),它具备以下性质: 树中有一个称为“根(Root)”的特殊结点,用 r 表示; 其余结点可分为m(m>0)个互不相交的有限集T1,T2,… ,Tm,其 中每个集合本身又是一棵树,称为原来树的“子树(SubTree)”子树是不相交的; 除了根结点外,每个结点有且仅有一个父结点; 一棵N个结点的树有...

2019-05-30 14:55:41 1815

原创 02-线性结构4 Pop Sequence

题目Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence o...

2019-05-30 11:11:35 134

原创 02-线性结构3 Reversing Linked List

题目大意Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; i...

2019-05-29 20:19:18 96

原创 一元多项式的乘法与加法运算

PTA 02-线性结构2 一元多项式的乘法与加法运算

2019-05-29 19:22:45 908

转载 队列

队列(Queue)插入和删除操作:只能在一端插入,而在另一端删除。顺序存储队列的顺序存储结构通常由一个一维数组和一个记录队列头元 素位置的变量front以及一个记录队列尾元素位置的变量rear组成typedef int Position;struct QNode { ElementType *Data; /* 存储元素的数组 */ Positi...

2019-05-26 19:51:44 62

原创 二分查找

Position BinarySearch(List L,ElementType X){ if(X<L->Data[1]||X>L->Data[L->Last]) return NotFound; /*出界*/ int left=1;int right=L->Last; int mid; ...

2019-05-26 16:35:34 72

原创 Maximum Subsequence Sum

int Left,Right;//记录最大子列和的左右端/全局变量int MaxSubsequenceSum(int a[],int N){ int sum=0; int maxsum=0; Left=0;Right=N-1; int count=0; /*记录当前最大子列和元素数*/ for(int i=0;i<N;i++){ ...

2019-05-26 16:27:09 102

原创 排序大法(下)

快速排序算法概述:分而治之(递归应用)、选主元、划分子列、cutoff阈值代码如下:(未设阈值)void swap(int* a,int* b){ int tmp; tmp=*a;*a=*b;*b=tmp;}int median3(int A[],int left,int right){ int center=(left+right)/2; if(A[le...

2019-05-16 21:13:14 79

转载 排序大法

测评要求给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:数据1:只有1个元素;数据2:11个不相同的整数,测试基本正确性;数据3:103个随机整数;数据4:104个随机整数;数据5:105个随机整数;数据6:105个顺序整数;数据7:105个逆序整数;数据8:105个基本有序的整数;数据...

2019-05-15 00:08:18 80

原创 数据结构学习——最小生成树

Kruskal算法

2019-05-10 14:42:15 172

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除