
数据结构
牧一呀
越努力越幸运,越幸运越努力~
展开
-
Day03 二分查找(有序数组)
北京下了雨,郁郁清爽,此时此刻,一个人孤坐在教室。一、二分查找的定义、适用及优点1. 定义二分查找又称折半查找。基本思想为先确定待查对象的范围,然后逐步缩小范围直到找到或找不到该对象为之。具体地讲,就是比较该区间的中间值,若大于中间值,就在右半区间继续查找,否则就在左半区间继续查找,如此循环,直到找到或找不到为之。2. 适用及优点优点:比较次数少,查找速度快;缺点:要求待查表为有序表(...原创 2019-05-19 09:34:57 · 147 阅读 · 0 评论 -
Day0301 Java队列(queue)
一、队列定义及实现队列是一种操作受限的线性表,它只允许在线性表的一端进行插入操作(rear),在另一端进行删除操作(front)。Java用LinkedList类实现Queue接口,我们可以把LinkedList当成Queue来用。相关方法及代码实现参见:https://blog.youkuaiyun.com/qq_36625806/article/details/78985589二、二叉树结点数的计算...原创 2019-05-19 19:05:00 · 132 阅读 · 0 评论 -
Day04 二叉树的四种遍历(灵活使用Queue、Stack、ArrayList)
转载注明!菜鸟入门,望指正二叉树有四种遍历方式,即层序遍历、前序遍历、中序遍历、后序遍历。每种遍历都有两种实现方式:递归算法和非递归算法,不同的遍历方式的实现涉及的数据机构不同,主要会用到Queue、Stack、ArrayList。下面给出各种遍历方式的具体实现及测试。学习推荐import java.util.ArrayList;import java.util.LinkedList;...原创 2019-05-20 21:33:53 · 588 阅读 · 0 评论 -
day05 二叉树算法题(面试)
写这篇博文的主要目的时作为自己写的学习笔记,方便后续复习,也希望对大家有所帮助。主要有以下9题:二叉树结点数的计算【非递归算法、递归算法】思路:如果二叉树为空,返回二叉树结点为0;如果二叉树非空,返回leftNum+rightNum+1;两种算法时间复杂度皆为O(n);二叉树的深度的计算【非递归算法、递归算法】思路:如果二叉树为空,返回二叉树深度为0;如果二叉树非空,返回max(...原创 2019-05-23 12:30:57 · 426 阅读 · 0 评论 -
day06 单链表相关操作
涉及:链表创建、计算链表长度、遍历打印链表、插入、删除结点、链表反转、合并两个有序链表结果仍为有序链表、从尾到头打印链表。直接上代码(含测试):import java.util.Stack;/* *链表基本操作 *面试算法题 */public class MyLinkedList { //定义头结点 public Node head; //定义结点类 publi...原创 2019-05-27 19:52:39 · 184 阅读 · 0 评论 -
day07 Java链表(环、快慢指针)
涉及以下问题:查找倒数第k个结点;查找中间结点;判断链表是否有环;计算环的长度;计算环的入口结点,原理参见(s含快慢指针推导):https://blog.youkuaiyun.com/puss0/article/details/78462375;计算两个链表的第一个公共结点(Y型),原理参见:https://blog.youkuaiyun.com/yanxiaolx/article/details/5213...原创 2019-05-28 09:12:18 · 248 阅读 · 0 评论 -
day08 Java实现七大基本排序算法
推荐博文: 点击一下直接插入排序希尔排序,参考:https://blog.youkuaiyun.com/qq_16697387/article/details/78136459冒泡排序,参考视频:https://www.bilibili.com/video/av50807665快速排序:参考视频:https://www.bilibili.com/video/av39519566?from=search...原创 2019-05-30 22:47:41 · 359 阅读 · 0 评论