数据结构从入门到入土
文章平均质量分 90
Java学习数据结构从基础到精通,全方位学习内容
小六学编程
大一新生,每天分享自己学习的计算机内容,欢迎关注以及私信我,和我一起讨论学习。
展开
-
学习数据结构第一步(必看)——初识集合框架
一提及数据结构我们就会想到算法,那数据结构和算法有何关系?其实这两个玩意是相辅相成的,一个好的算法离不开好的数据结构,而我们学数据结构的目的就是为了能够体现在算法上,能够更好的应用。面对数据结构这个词,我们很容易误以为它是什么比较高大上的玩意儿,其实不然,我们可以简单理解成数据 + 结构,主要用来描述和组织数据。比如说,我们有十万个用户信息,那这些信息我们如何去描述和组织起来?答案就是使用数据结构这个东西。例如:数组就是一种简单的数据结构(数组也是用于描述和组织一组数据)原创 2023-12-12 18:56:18 · 1023 阅读 · 1 评论 -
迈入数据结构殿堂——时间复杂度和空间复杂度
一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。这里我们可以类比高数中极限的思维,当N趋近于无穷大的时候,后面的常量10加不加好像对我们的时间效率并没有太大的影响,因为如今计算机的运行效率都是相当快的。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。拿到一串代码计算基本操作被执行多少次时,我们不可能去挨个数,一小串代码还好,可当我们面对一个项目的代码时,我们是不可能去挨个数出来的。得到的结果 是大O阶。原创 2023-12-13 11:08:02 · 1272 阅读 · 2 评论 -
数据结构从入门到入土——初识泛型
一般的类和方法,只能使用具体的类型要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。-----来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。三,引出泛型实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值?原创 2023-12-14 21:59:55 · 1267 阅读 · 1 评论 -
数据结构入门到入土——List的介绍
List中提供了好的方法,具体如下:方法解释booleanadd(E e)尾插evoidadd将e插入到index位置booleanaddAll尾插c中的元素Eremove删除index位置元素booleanremove(Object o)删除遇到的第一个 oEget获取下标index位置元素Eset将index位置元素设置为elementvoidclear()清空booleancontains(Object o)判断o是否在线性表中intindexOf。原创 2023-12-27 20:49:34 · 642 阅读 · 0 评论 -
数据结构入门到入土——ArrayList与顺序表
【说明】是以泛型方式实现的,使用时必须要先实例化实现了接口,表明ArrayList支持随机访问实现了Cloneable接口,表明ArrayList是可以clone的实现了接口,表明ArrayList是支持序列化的5.和Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。原创 2023-12-29 22:51:14 · 1200 阅读 · 2 评论 -
数据结构入门到入土——链表(1)
将head1.val与head2.val进行比较,较小令它等于tmpH且令它等于它的下一个节点,tmpH为newH的下一个节点。当fast==null或者fast.next === null时。然后令fast和slow一起走同样的步数,直到fast.next为null。要求倒数第k个节点,我们可以先定义fast和slow两个位于头节点的变量。当cur.val>=给定的值x时就让它进入链表2。当cur.val原创 2024-01-05 17:57:18 · 1354 阅读 · 1 评论 -
数据结构入门到入土——链表(2)
当慢指针刚进环时,可能就和快指针相遇了,最差情况下两个指针之间的距离刚好就是环的长度。此时,两个指针每移动一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在慢指针走到一圈之前,快指针肯定是可以追上慢指针的,即相遇。通过以上过程我们推导出头节点距入口处(x)其实是等于快指针和慢指针相遇点到入口处的距离(y)的,所有我们大可在这里再次令slow等于head,让fast和slow以相同的速度往后走,因为速度一样,路程一样,所有它们再次相遇的地方就一定是这个环的入口点。下面是两个相交的链表。原创 2024-01-07 21:00:23 · 1286 阅读 · 1 评论 -
数据结构入门到入土——链表(完)LinkedList
双向链表由一系列的节点组成,每个节点包含两个指针,分别指向前一个节点和后一个节点。与单向链表不同,双向链表可以从任意节点开始,向前或向后遍历链表。如下图所示:这是一个无头双向链表,从中我们不难看出它与无头单向链表的区别:1.不仅有头节点通过next进行顺序访问,还有尾节点通过prev进行逆序访问2.额外有一个prev域访问上一个已访问过的节点LinkedList的官方文档。原创 2024-01-09 20:28:27 · 1749 阅读 · 4 评论 -
数据结构入门到入土——栈(Stack)和队列(Queue)
逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式形式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。这是一个我们常见的表达式:9+(3-1)*3+8/2,这是一个中缀表达式,而我们要将它转换成一个不需要括号来识别优先级的后缀表达式,该怎么做?原创 2024-01-13 17:57:44 · 1339 阅读 · 2 评论