数据结构和算法
数据结构和算法笔记
程序员小海绵【vincewm】
本科毕业于西安某211电子信息类专业,Java高级工程师,CSDN博客专家,Java领域优质创作者,专注于Java领域知识分享
展开
-
C语言运算符的优先级
初等运算符:(),[],->,.单目运算符:!,~,+,-,*,&,++,--,sizeof算术运算符:*,/,%,+,-移位运算符: <<,>>关系运算符: >,<,>=,<=,==,!=位逻辑运算: &,^,|,&&逻辑运算符: &&,||三目运算符: ?:赋值运算符...原创 2019-12-30 10:35:00 · 46 阅读 · 0 评论 -
PAT(甲级)英文词汇积累
adjacent;undirected edges(无向边);Ancestor ;Quadratic probing;increments ;collisions;prime(素数);Heaps ;liars;lying;statement infix expression;precedences;operators;parentheses;set(集合);Delaye...原创 2019-12-26 20:15:00 · 175 阅读 · 0 评论 -
pat题型整理
数学/字符串/c语言1,5,2,6,8,9,20,23,27,29,31,35,38,40,41,42,45.48,49,50,54,58,60,61,65,67,69,73,77,82,89,92,93,96,100,104,105,108,112,113,116,素数15,59,78,145进制10,最小公倍数81,88,回文19,24,136二分查找44,85,哈希...原创 2020-07-16 15:29:00 · 100 阅读 · 0 评论 -
判断一棵树是不是BST
坑点:不能通过左大于根或右小于根直接判定;Status IsBSTree(BiTree t)/* 判别给定二叉树t是否为二叉排序树。*//* 若是,则返回TRUE,否则FALSE */{ BiTree p; if(!t || !t->lchild&&!t->rchild) return TRUE; // if(t->lchild) { p=t->lchild; while(p-.原创 2021-03-17 20:11:30 · 145 阅读 · 0 评论 -
算法题刷题总结
进制转换while(n){a[i++]=n%b;b/=b;}Lcalca要注意输入两个点相同;bst求lca根据左小右大的特点,最小祖先LCA的value一定处于u、v之间;先序序列找第一个值在uv之间的。中后序求 lca在先序前列找; 第一个出现的满足要求的点;一律大于等于小于等于;Dijkstra失误,把num写成了d;一定一定看清题意;map<int, bool>G;代替邻接矩阵;Gsame_gen[a*10000+same_genb]中途点数量city_c原创 2021-03-17 20:08:28 · 219 阅读 · 0 评论 -
八大排序算法
插入、冒泡、选择;希尔、快速、归并;堆、基数;插入:每趟把一个待排关键字按大小插进已排序列正确位置中。冒泡:顺序遍历,每趟把最大的数冒泡到最右边。选择:每趟选最大数。希尔:缩小增量,每隔一段增量比较,每趟使序列更加有序,适合基本有序。快速:左右两头指针,每次将枢纽选到正确位置,ij指针重合。归并:即先使每个子序列有序,再使子序列段间有序,分治法的有效应用。因为需要转存整个待排序列,所以空间复杂度O(n)堆:先当成完全二叉树建堆(每原创 2021-03-17 20:07:32 · 99 阅读 · 0 评论 -
已知先序、中序、后序遍历其中两个画出二叉树
已知先序遍历(根左右)为:ABDCEGF中序遍历(左根右)为:BDAEGCF(1)先序遍历第一个元素A为根节点,观察中序遍历A的左边元素对应二叉树中在A的左分支,右边同理。该题根节点A的左边有B D两个元素,右边有E G C F。再结合根左右的顺序可得到B为A的左孩子结点,C为A的右孩子结点。E为C的子结点,但未知左右。(2)根据中序遍历左根右的顺序,B没有左孩子结点,D为B的右孩子结点。(3)因为中序顺序为左根右,结合(1)所以F为C的右孩子结点(无后继),E为左结点。(4)根据中序左根右原创 2021-03-17 19:56:41 · 522 阅读 · 0 评论