数据结构
一李
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
判断两个对象(注意特殊对象的处理)找出不一致的是哪个变量,返回的格式类似:“root变量-父变量-...-不一致的变量“的字符串;
在看到这个题目的时候自己本来的想法是遍历这个对象中的所有的属性,逐一对比,打印出对象不同的属性:后来发现这样确实是可以找出不同的属性,但是并没有达到题目要求的输出效果, 附上代码 function diff(oldstu, newstu) { let str = []; for (const key in oldstu) { if (oldstu.hasOwnProperty(key)) { if (oldstu[key] &原创 2021-03-11 21:19:47 · 360 阅读 · 0 评论 -
找出数组中元素出现次数超过数组长度一半的元素
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 这道题有多种解法,下面主要说两种。 常规方法:创建一个Map,遍历数组中的元素,如果元素不在map中出现过,将元素设置为key,value=1,如果元素在map中,就取出这个元素,并将对应的value值+1.最后遍历map中的元素,如果有value>数组长度的一半,就返回值 思维方原创 2020-12-26 20:51:36 · 985 阅读 · 2 评论 -
二分搜索树:删除元素
二分搜索树,删除节点 删除二分搜索树的最小值和最大值。 //删除最小值所在节点,返回最小值 public E removemin() { E rey = mininum(); removemin(root); return rey; } //删除掉以node为根的二分搜索树中的最小节点 //返回删除及诶单后新的二分搜索树的根 private Node removemin...原创 2019-09-12 21:17:33 · 272 阅读 · 0 评论 -
二分搜索树的遍历
遍历:访问二分搜索树的每一个元素。 深度优先遍历 前序遍历(最自然的遍历方式):遍历这个节点,遍历这个节点的左子树,右子树。 每一个,节点访问三次。第一次访问节点的时候最数进行操作。 public void preOrder() { preOrder(root); } // 前序遍历以node为根的二分搜索树,递归 private void preOrder(Node nod...原创 2019-09-11 20:51:16 · 145 阅读 · 0 评论 -
数据结构:二分搜索树(添加,查询元素)
树结构:将数据使用树结构储存后,高效 二分搜索树 平衡二叉树 堆:并查集。 线段树:trie (字典树,前缀树) 当使用某些特定的数据结构存储问题之后,可以帮助我们更加高效的算法问题。 二叉树(多叉树):动态的数据结构。 二叉树具有唯一的根节点,每个节点最多有两个孩子节点,最多有一个父亲节点。每一个节点都有指向左和右。(左孩子,右孩子) 叶子节点(节点没有任何孩子) 二叉树具有天...原创 2019-09-11 18:32:05 · 244 阅读 · 0 评论 -
数据结构:链表与递归
递归: 本质上,将原来的问题转化为更小的问题.------子过程的调用 举例:将计算数组的和利用递归转化为更小的问题 public class Sum {//数组求和 public static int sum(int []arr) {//用户 return sum(arr,0); } private static int sum(int []arr,int l) {//递归函数...原创 2019-09-10 22:05:11 · 304 阅读 · 0 评论 -
数据结构----------链表Linked List 用链表实现队列,栈
动态数据结构-----引用(指针)------递归机制 Linked List 数据存储在“节点(Node)”中 链表存储的数据是有限的,最后一个节点是null 优点:真正的动态,不需要处理固定容量的问题 缺点:没有了随机访问的能力 为链表设立虚拟头结点。dummyHead(虚拟头结点 ) 链表的遍历查询修改,删除元素。 不论是添加还是删除操作,都是需要找到删除得索引,然后把...原创 2019-09-05 21:35:09 · 359 阅读 · 0 评论 -
数据结构----------队列和循环队列
队列Queue:(对比栈学习) 线性结构 只能从一端添加元素,从另外一端取出元素(先进先出-FIFO) 时间复杂度O(1) 出队时间复杂度O(n) public class ArrayQueue<E> implements Queue<E> { private Array<E> array; publ...原创 2019-09-05 00:33:43 · 412 阅读 · 0 评论 -
数据结构----------栈
栈stack-------线性的数据结构 只能从栈的一端添加元素,也只能从栈的一端取出元素 栈---压栈。弹栈。后进先出,List IN First Out(LIFO) 基本实现栈:基于Arrayz中的方法 public class ArrayStack<E> implements Stack<E> { Array<E> array; pub...原创 2019-09-04 21:30:04 · 142 阅读 · 0 评论 -
数据结构——制作属于自己的数组类
在自己的数组中添加,修改,查询,插入数组元素,重写数组的toString方法,是否包含一个元素 使用泛型: 让我们的数据结构可以放置任何数据类型 不可以放置基本数据类型(八种) ,只能是类对象(包装类) java语言不支持直接new一个泛型,所以在newObject后,在前面吧数组强转成(E[]) 动态数组: 数组的扩容:缩容 简单的时间复杂度分析: O(n)--...原创 2019-09-04 19:37:11 · 235 阅读 · 0 评论
分享