数据结构
文章平均质量分 82
样young
没有什么可介绍的,希望能够在这里学到更多的知识
展开
-
Java描述数据结构之迷宫问题
老鼠走迷宫是堆栈在实际应用中的一个很好例子。在实验中,老鼠被放在一个迷宫里,当老鼠走错路时就会重来一次并把走过的路记起来,避免重复走同样的路,就这样直到找到出口为止。下面使用二维数组来模拟迷宫地图,当某个方向的值为0时,表示可以走的路,为1时表示路两边的墙,利用链表来记录走过的位置,并将走过的位置的数组元素内容标识为2:// =============== Program Descri...翻译 2018-05-08 20:21:17 · 5099 阅读 · 0 评论 -
数据结构之图解堆排序(Java实现)
文字讲解部分及图片源自:https://www.cnblogs.com/chengxiao/p/6129630.html堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏、最好、平均时间复杂度均为O(nlogn),是不稳定排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,...原创 2018-06-29 11:53:14 · 1361 阅读 · 1 评论 -
搞定面试中的链表题目(Java实现)
本文转载自:https://www.jianshu.com/p/a64d1ef95980这是一篇关于链表的文章,总结了链表数据结构和算法相关的一些题目。先上链表的数据结构:class ListNode { ListNode next; int val; ListNode(int x){ val = x; next = null; }...转载 2018-05-27 17:49:02 · 2265 阅读 · 0 评论 -
搞定面试中的二叉树题目(Java实现)
本文转载自:https://www.jianshu.com/p/0190985635eb这是一篇关于二叉树的文章,总结了二叉树数据结构和算法的相关题目。先上二叉树的数据结构:class TreeNode{ int val; //左孩子 TreeNode left; //右孩子 TreeNode right;}二叉树的题目普遍可以用递归和迭代的方式来解1....转载 2018-05-27 17:44:56 · 4170 阅读 · 0 评论 -
Java描述数据结构之二叉树运算(Binary Expression Tree)
一般的算术式可以转换成二叉运算树(Binary Expression Tree)的方式,建立的方法可以根据以下原则:①考虑算术式中运算符的结合性与优先权,再适当地加上括号;②再由最内层的括号逐步向外,利用运算符当树根,左边操作数当左子树,右边操作数当右子树,其中优先权最低的运算符作为此二叉运算树的树根。下面的示例程序是将数组表示法表示的二叉运算树转换成链表表示的二叉运算树并计算此二叉运...原创 2018-05-16 14:07:06 · 1532 阅读 · 0 评论 -
Java描述数据结构之双向队列(Double-ends Queues,Deque)
双向队列是一种前后两端都可输入或取出数据的有序表,在双向队列中,我们仍然使用两个指针,分别指向加入及取回端,只是加入和取回数据时,各指针所扮演的角色不再是固定的加入或取回,而且两边的指针都向队列中央移动。下面是实现双向队列的示例程序,可以在两端加入和取出数据:// 程序名称: DequeTest.java // 程序目的:输...原创 2018-05-15 16:54:06 · 1430 阅读 · 0 评论 -
数据结构(Java实现)之单向链表的节点表示、插入、删除、单向链表反转和串联
单向链表是列表中常用的一种,所有节点串成一列,而且指针所指的方向一样。列表中每个数据除了要存储原本的数据,还必须存储下一个数据的存储地址。下面的程序示例演示了如何构建链表节点,向单向链表插入节点、删除节点、反转单向链表和串联两个单向链表:import java.io.BufferedReader;import java.io.IOException;import java.io.InputSt...原创 2018-05-07 15:53:23 · 2245 阅读 · 0 评论 -
Java描述数据结构之线索二叉树(Threaded Binary Tree)
虽然把树转换为二叉树可减少空间的浪费,但是如果我们仔细观察使用链表建立的n节点二叉树,会发现用来指向左右节点的指针只有n-1个链接,另外的n+1个指针都是空链接。线索二叉树就是把这些空的链接加以利用,再指到树的其他节点,而这些链接就称为”线索“(thread),而这棵树就称为线索二叉树(Threaded Binary Tree)。将二叉树转换为线索二叉树的步骤如下:①先将二叉树通过中序...原创 2018-05-16 22:58:19 · 381 阅读 · 0 评论 -
Java实现八皇后问题的求解(堆栈及回溯)
在西洋棋中的皇后可以在没有限定一步走几格的前提下,对棋盘中的其它棋子直吃、横吃及对角斜吃,只要是后放入的新皇后,放入前必须考虑所防位置横竖方向及对角方向是否已被放置旧皇后,否则就会被先放入的旧皇后吃掉。 要解决八皇后问题,首先,当我们在棋盘中置入一个新皇后,且这个位置不会被先前放置的皇后吃掉,就将这个新皇后的位置存入堆栈。但是如果当放置新皇后的该行或列的八个位置都没有办法放置...转载 2018-05-09 17:01:32 · 1895 阅读 · 0 评论 -
MySQL索引原理以及查询优化
本文转自:https://www.cnblogs.com/bypp/p/7755307.html一、介绍1.什么是索引?一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。2.为什么要有索引呢?索引在M...转载 2018-09-24 21:38:55 · 230 阅读 · 0 评论