数据结构
Android_大佬
这个作者很懒,什么都没留下…
展开
-
二叉树基本概念,前中后序遍历,删除!
二叉树 为什么需要树这种数据结构 1) 数组存储方式的分析 优点: 通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点: 如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 2) 链式存储方式的分析 优点: 在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好)。 缺点: 在进行检索时,效率仍然较...原创 2020-01-16 16:55:27 · 486 阅读 · 2 评论 -
java 实现单链表、双链表增删改查、排序、约瑟夫等功能实现
总结: 1、链表中每个结点的next引用都相当于一个指针指向另一个结点 2、在单链表中通常使用head引用指向单链表的首结点,由head引用完成对整个链表中所有结点的访问 3、单链表的一个重要特性就是只能通过前驱结点找到后续结点,不能从后续结点找到前驱结点 单链表的增、删、改、查实现: // 根据条件排序添加 /** * 单链表的实现 */ public class SingleLinkdL...原创 2019-11-06 15:53:29 · 285 阅读 · 2 评论 -
数组实现栈、中缀计算器、逆波兰后缀计算器、 中缀转后缀完整版本!
栈的介绍: 栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的 一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后...原创 2019-11-15 17:43:42 · 261 阅读 · 0 评论 -
一篇文章让你彻底了解算法的时间复杂度O(n)!!!
一、时间频度 基本介绍: 时间频度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间 就多。一个算法中的语句执行次数称为语句频度或时间频度。记为 T(n)。[举例说明] 比如计算 1-100 所有数字之和, 我们设计两种算法: 举例说明-忽略常数项 结论: 1) 2n+20 和 2n 随着 n 变大,执行曲线无限接近, 20 可以忽略 2) 3n+10 ...原创 2019-11-19 15:56:23 · 7896 阅读 · 0 评论 -
java 数组实现单项队列和环形队列!
数组实现队列: 普通单项队列 环形队列 一、实现普通队列 1) 将尾指针往后移:rear+1 , 当 front == rear 【空】 2) 若尾指针 rear 小于队列的最大下标 maxSize-1,则将数据存入 rear 所指的数组元素中,否则无法存入数据。rear == maxSize - 1[队列满] public static void main(String[] ar...原创 2019-11-05 14:45:37 · 221 阅读 · 0 评论