2021
12-11
12-11
java数据结构基础:循环链表和栈
目录循环链表:实现思路:代码实现:栈:实现思路:代码实现:总结循环链表:与单链表的最后一个节点的指针域为null不同,循环链表的最后一个节点的指针指向头结点实现思路:初始化时将头结点指向自身,添加节点到链表末尾时,将新节点的指针指向头结点在遍历链表时,判断是否遍历到链表末尾,需要判断当前指针的下一个节点是否为头结点代码实现:节点类CircleNode:publicclassCircleNode{publicintdata;publicCircleNode...
继续阅读 >
目录稀疏数组:实现思路:举例:二维数组转稀疏数组实现思路:稀疏数组恢复二维数组实现思路:代码实现:输出结果:总结稀疏数组:当一个二维数组中大部份的值为0,或者为同一值的时候,可以用稀疏数组来保存实现思路:记录二维数组有多少行多少列、多少个不同的值把不同的值按照所在行列,记录在一个规模较小的数组中举例:11×11的二维数组:对应的稀疏数组:其中,第一行分别为,原二维数组总行数、总列数、不为0的数的个数之后...
目录单向链表单链表图解代码双向链表编码总结单向链表单向链表比顺序结构的线性表最大的好处就是不用保证存放的位置,它只需要用指针去指向下一个元素就能搞定。单链表图解图画的比较粗糙,简单的讲解一下:上面四个长方形,每个长方形都是一个节点。在长方形中,一种包含两个东西,一个是当前节点的元素,一个是指向下一节点的地址。这个下一个节点的地址指向了下一个节点中的元素。以此类推。在最左边的叫做头节点,同样,最后面...
目录准备工作编码环节push方法pop方法empty方法全部代码总结准备工作工具:idea+jdk8技术要求:java基础语法编码环节首先,我们得先确定下来,用什么数据来模拟栈的操作。由于是一个一个的元素放入栈里面,我们可以考虑用数组来实现。以上是Java官方文档中的栈定义,我们也只需要实现三个方法:判断是否为空、移除栈顶对象、添加元素到栈的尾部所以我们事先得定义一个数组:Objects[]arr;数组定义好了之后呢,想想,我们怎么去获...
目录数据结构和算法关系高斯求和算法定义算法的特性算法设计的要求算法效率的度量方法函数的渐进增长总结数据结构和算法关系虽然这个标题起的叫数据结构,但是我却总结算法。。。我不是没事找抽,只是呢,在学数据结构的时候,算法是你肯定离不开的东西。你平时在网上看到的那些文章,在你不经意间搜的时候,是不是都是搜的数据结构与算法这七个字。这说明啥,这说明他们俩是离不开的。给你打个比方,你想看德云社相声(我也想看)...
目录基本概念和术语数据数据元素数据项数据对象结构数据结构逻辑结构与物理结构逻辑结构物理结构抽象数据类型总结基本概念和术语要想知道数据结构是什么,我们首先得去知道,数据和结构是什么;数据结构=数据+结构也就是说,我们先去研究数据,再去把这些数据组成一定得样子(结构),自然而然的成了数据结构数据数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别并输入给计算机处理的符号集合这样说可能还...
目录面试题1:说一下抽象类和接口有哪些区别?正经回答:深入追问:追问1:说一说你对抽象类的理解吧,他到底是干啥用的追问2:用抽象类实现一个接口,和普通类实现接口会有什么不同么?追问3:抽象类能使用final修饰吗?面试题2:final在Java中有什么作用?正经回答:1、修饰类2、修饰方法3、修饰变量深入追问:追问1:能分别说一下final、finally、finalize的区别么?面试题3:你对Java序列化了解么?正经回答:深入追问:...
目录面试题1:Java中操作字符串都有哪些类?它们之间有什么区别?正经回答:深入追问:追问1:这三者在效率上怎么说?追问2:那StringBuffer和StringBuffer线程安全主要差在哪里呢?面试题2:请你说一下Error和Exception区别是什么?正经回答:面试题3:==和equals的区别是什么正经回答:深入追问:追问1:如果我们不重写equals()方法,会怎么样?追问2:重写equals的同时,我们需要重写hashCode()方法么?为什么?总结面...
目录多线程使用场景:线程和进程区别:创建线程的方式:Thread类的有关方法:线程的同步:模拟火车站售票程序线程的同步:synchronized1.同步代码块:2.synchronized还可以放在方法声明中,表示整个方法为同步方法。总结并发与并行:并行:指两个或多个事件在同一时刻发生(同时发生)。并发:指两个或多个事件在同一个时间段内发生。多线程使用场景:1.后台任务,比如游戏服务器2.定时向大量用户(100W)用户发邮件3.异步处理:...
目录1.Java的基本数据类型有哪些?2.如何理解面向对象和面向过程?3.如何理解多态4、封装举例?5、继承?6、char可不可以存储一个中文汉字,为什么?7、自动拆装箱?int和integer有什么区别?8、==和equals的区别?9、String可以被继承吗?10、Stringbuffer和StringBuilder的区别?11、final、finally、Finalize有什么区别?12、Object中有哪些方法?13、集合框架简单体系图14、ArrayList、LinkedList、Vector的区别?15、Ha...
目录水仙花数源码计算分数的值源码最大公约数源码二进制1的个数源码二进制序列源码模拟登陆源码输出一个整数的每一位源码输出乘法口诀表源码总结水仙花数求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数“。)源码publicstaticvoidGetDaffodil(){intj=0;intk=0;intl=0;for(inti=0;i<=999;i++)...
目录数字9出现的次数源码输出闰年源码打印素数源码判定素数源码年龄打印源码打印X图形源码猜数字游戏源码总结数字9出现的次数编写程序数一下1到100的所有整数中出现多少个数字9源码publicstaticintGetnum(){intcount=0;for(inti=1;i<=100;i++){if(i%10==9){count++;}if(i/10==9){count++;}}retu...
目录找出出现一次的数字源码斐波那契数源码求阶乘和源码求N的阶乘源码奇数位于偶数之前源码求和的重载源码总结找出出现一次的数字有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字源码publicstaticintfindNum(intarr[]){intn=0;for(inti=0;i<arr.length;i++){n^=arr[i];}returnn;}运行结果:斐波那契数求斐波那契数列的第n项。(迭代实现。源码publicstaticintfibo(intn){...