![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
zs742946530
这个作者很懒,什么都没留下…
展开
-
Java用链表实现队列
队列--先入先出 栈---后入先出 链表实现队列和栈。首先我们需要构建一个链表。链表有哪几要素? 1、链表本身的value 2、链表的next指针,next指针指的还是同样类型的值。 下边看代码 public class Element<T> { private T value;//链表值 private Element<T> next;...原创 2018-10-17 21:14:56 · 1329 阅读 · 0 评论 -
Java用链表实现栈
上一篇实现了队列,这一篇我们实现栈。 栈是后入先出的数据结构。 链表中插入数据有头插法和尾插法,本篇我们使用头插法。 不多说直接上代码 链表的节点定义和上一篇使用的是同一个,可以参考上一篇。 public class StackImpl<T> { private Element<T> top=null; public boolean push(...原创 2018-10-17 22:23:29 · 1406 阅读 · 0 评论 -
数据结构(排序算法和查找算法的时间复杂度和空间复杂度)
这是从大神给的网站上找到的算法的时间复杂度趋势和各个常用结构的复杂度截图。 算法的时间复杂度,用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。 常用查找算法的时间复杂度和空间复杂度 二叉树的查找 O(...原创 2018-10-13 20:05:01 · 6084 阅读 · 1 评论 -
Java二叉树的前序、中序、后序遍历
相信一直关注平时业务代码的同学都很少关注二叉树、堆、栈等数据结构的访问和遍历。 今天我们就说说二叉树的遍历 什么是前序遍历?什么是中序遍历?什么是后序遍历?这个不懂的先自行百度一下吧。 二叉树和链表的区别是,链表只有后序节点,二叉树虽然没有next节点,但是有左节点和右节点。 所以我们先定义二叉树的节点。 代码如下: public class NodeWD<T> { ...原创 2018-10-18 11:36:28 · 462 阅读 · 0 评论 -
【转】java中堆的排序
Java实现堆排序(大根堆) 堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素。 1. 若array[0,...,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩子结点指针之间的内在关系如下: 任意一节...转载 2018-10-16 22:46:50 · 92 阅读 · 0 评论 -
英文字符顺序翻转
面试必备 字符串翻转 题目: 原字符串 www.taobao.com.cn,翻转后顺序为cn.com.taobao.www 手撕代码,哈哈哈哈 传说中的最优解,两个指针变量 搞定? public static void main(String[] args) { // StringBuilder ss=new StringBuilder("www.toutiao....原创 2018-10-17 17:46:05 · 229 阅读 · 0 评论 -
红黑树的左旋和又旋
今天先来用java实现红黑色左旋和右旋。后边再把添加、删除给补充上。 什么是红黑树? 红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一陪。具体来说,红黑树是满足如下条件的二叉查找树(binary search tree): 每个节点要么是红色,要么是黑色。 根节点必须是黑色 红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。...原创 2018-10-20 19:31:10 · 742 阅读 · 0 评论