数据结构
贪心,排序,NP
a-bit
这个作者很懒,什么都没留下…
展开
-
19. 删除链表的倒数第N个节点
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/public class Solution { public static void main(String[] args) { Solution solution=new Solution(); ListNode h5=new ListNode(5); ListNode h4=new ListNode(4,h原创 2020-12-03 19:53:42 · 80 阅读 · 0 评论 -
回文串、动态规划、中心扩散、Manacher 算法
https://leetcode-cn.com/problems/longest-palindromic-substring/方法一:中心扩散法class Solution { public String longestPalindrome(String s) { if(s.length()<2) return s; char[] c = s.toCharArray(); int count; int point;原创 2020-11-30 14:02:47 · 115 阅读 · 0 评论 -
快速排序
快速排序,Quick Sort平均时间复杂度平均时间复杂度平均时间复杂度平均时间复杂度稳定性思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。6.1 算法描述快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:从数列中挑出一个元素,称为 “基准”(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基.原创 2020-11-29 21:04:57 · 231 阅读 · 0 评论 -
搜索-广度优先搜索 BFS
/* 邻接矩阵存储的图 - BFS *//* IsEdge(Graph, V, W)检查<V, W>是否图Graph中的一条边,即W是否V的邻接点。 *//* 此函数根据图的不同类型要做不同的实现,关键取决于对不存在的边的表示方法。*//* 例如对有权图, 如果不存在的边被初始化为INFINITY, 则函数实现如下: */bool IsEdge( MGraph Graph, Vertex V, Vertex W ){ return Graph-&...原创 2020-11-27 15:28:46 · 107 阅读 · 0 评论 -
搜索-深度优先搜索 DFS
1103Integer Factorization(30分)TheK−Pfactorization of a positive integerNis to writeNas the sum of theP-th power ofKpositive integers. You are supposed to write a program to find theK−Pfactorization ofNfor any positive integersN,...原创 2020-11-27 14:07:18 · 123 阅读 · 0 评论 -
图是什么?
源于生活:计算机网络,交通网络,电话网络,超文本链接,人际关系图由两个集合组成非空但是有限的顶点集合V 描述顶点之间关系,边的集合E图的表示: G=(V,E)数据对象的称呼线性表-元素 树-结点 图-顶点......原创 2020-11-27 13:24:48 · 462 阅读 · 0 评论 -
二叉树的遍历-由中序和先序遍历序列确定一颗二叉树
an inorder binary tree traversal can be implemented in a non-recursive way with a stackfor examplesuppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversedthe stack operations are :push(1)push(2)push(3)pop()pop...原创 2020-11-26 20:48:42 · 389 阅读 · 0 评论 -
二叉树的遍历-由中序和后序遍历序列确定一颗二叉树
概述中序遍历的结果和后序遍历的结果可以确定一颗二叉树方法后序序列可以知道根结点和子树的子节点;中序序列可以知道根结点(子树的子节点)的左子树有哪些元素,右子树有哪些元素推演中序遍历序列和后序遍历序列确定树中序序列:cbedahgijf后序序列:cedbhjigfa案例Given the postorder and inorder traversal sequences 给出后序和中序序列you are supposed to output th...原创 2020-11-25 22:56:30 · 7567 阅读 · 0 评论 -
表达式树的遍历和构造
表达式树的遍历和构造原创 2020-11-25 20:13:47 · 279 阅读 · 0 评论 -
二叉树的Java实现
Java实现以下方法:熟的节点数量:size 判断是否为空:isEmpty 树的高度:getHeight 对树进行递归先序遍历:preTraversal 对树进行递归中序遍历:middleTraversal 对树进行递归后序遍历:postTraversal 借助队列实现层序遍历:orderByQueue 借助栈实现非递归先序遍历:preTraByStack 借助栈实现非递归中序遍历:inOrderByStack 借助栈实现非递归后序遍历:postTraByStackps:关于树:原创 2020-11-24 16:44:42 · 280 阅读 · 0 评论 -
树是什么?
5W1HWhat:具有分支层次关系的集合 When:1850年左右吧 Who:据《中国大百科全书数学卷》P679页,在1847年,GR基尔霍夫在建立电网络理论时,以图G代替电网络N,提出了“连通图”,“树”,“支撑树”等基本概念。1857年A凯莱在研究饱和碳氢化合物同分异构体数目时独立地提出了树的概念,他把这类化合物的计数问题抽象为某类树的计数问题。这类树中要求关联到每点的线的条数是1到4,树上的一个点对应于一个氢原子或一个碳原子,这一问题是树的计数问题的起源。 Where:元素之间有分支...原创 2020-11-23 17:09:44 · 280 阅读 · 4 评论 -
队列是什么?
5W1H5W:What ?有序线性表,但是插入和删除在线性表的两个不同端点进行 Where ?任何资源受限的地方,比如食堂排队打饭的时候 When ?任何资源受限的时侯,以前计算机只有一个CPU,进程需要排队进行运算 Who ?任何资源受限的对象,比如搬家的蚂蚁,需要跟着前一只蚂蚁 Why ?资源受限How?:先进先出,FIFO抽象数据类型(Abstract Data Type,ADT)得有队列的头 front,正在打饭的小胖 队列的屁股 rear,刚刚排上队...原创 2020-11-23 00:14:36 · 525 阅读 · 0 评论 -
栈是什么
概念栈Stack:栈顶插入或者删除,栈底不变基本操作:入栈push,出栈pop按照存储方式分类顺序存储:顺序栈 链式存储:链栈中缀表达式和后缀表达式定义:比如:2*(9+6/3-5)+4=???这个算数表达式先算括号里的,再算括号里的除法,再算...总之就是存在优先级这样的表达式就叫做中缀表达式,也叫算术表达式,算出来是16而计算机如果要计算2*(9+6/3-5)+4,如果也像人一样,先算...,再算...的中缀表示式,程序设计?就很麻烦!!!计算机用..原创 2020-11-20 21:47:26 · 473 阅读 · 1 评论 -
线性结构是什么
线性结构分为:线性表,栈,队列原创 2020-11-20 16:17:47 · 3465 阅读 · 0 评论 -
数据结构是什么
概念数据元素不是孤立的,他们之间存在某种关系,这种关系叫结构而这种结构的集合,叫数据结构分类: 逻辑结构 存储结构 顺序存储逻辑相邻的元素,物理存储上也相邻; 优点:每个元素占用最小的储存空间 缺点:只能使用相邻的存储块, 可能产生较多外部碎片链式存储借助元素存储地址指针表示逻辑关系。逻辑相邻的数据,存储可以不相邻 优点:无碎片,充分利用存储单元...原创 2020-11-20 15:22:07 · 214 阅读 · 0 评论 -
冒泡排序的优化、代码的复用、面向对象练习
冒泡排序,顾名思义,假设瓶子垂直分布了很多气泡,最下面的气泡往上浮,在浮动的过程中,如果有气泡比他要小,那就打交换位置此时,瓶子最上面是最大的气泡接下来,继续看最下面,原来的气泡已经离开了,那就找它的上面一个继续往上浮动对比...一直重复,直到轮到最下面的结束动图你值得拥有:https://www.cnblogs.com/onepixel/articles/7674659.htmlpackage Sort;import java.util.Random;publ原创 2020-11-12 09:53:44 · 639 阅读 · 2 评论