- 博客(9)
- 收藏
- 关注
原创 Java数据结构和算法(双向链表)
双向链表: 1、单向链表只能是一个方向查找,双向链表向前或者向后查找 2、双向链表可以自我删除 3、next pre【指向前一个节点】双向链表的遍历,添加,修改,删除思路: 1、遍历:遍历的方式和单链表一样,可以向前,也可以向后 2、添加(默认添加到双向链表的最后) (1)、先找到双向链表的最后这个节点 (2)、temp.next = newHeroNode (3)、newHeroNode.pre = temp 3...
2021-12-01 17:21:59
172
原创 Java数据结构和算法(单链表的面试题)
1、求单链表有效节点的个数。//问:求单链表有效节点的个数。//方法:如果是带头节点的链表,需求不统计头节点 /** * * @param head 链表的头节点 * @return 返回的是有效节点的个数 */ public static int getLength(HeroNode head) { if (head.next == null) { //空链表 return 0; .
2021-11-29 22:17:25
487
原创 Java数据结构和算法(单链表顺序插入节点)
单链表顺序插入节点: 1、找到新添加的节点的位置,是通过辅助变量(指针),通过遍历。 2、新的节点.next=temp.next 3、将temp.next=新的节点代码实现:package com.huaze.sparsearray;public class SingleLinkedListDemo { public static void main(String[] args) { //测试 //创建几个节点 ...
2021-11-27 14:43:50
773
原创 Java数据结构和算法(链表)
链表(Linked List): 1、链表是以节点的方式来存储,是链式存储。 2、每个节点包含 data域,next域:指向下一个节点。 3、链表的各个节点不一定是连续存放的。 4、表链分带头节点的链表和没有头节点的链表,根据实际需求来确定。使用带head头的单向链表实现——水浒英雄排行榜管理完成对英雄人物的增删改查操作添加(创建): 1、先创建一个head头节点,作用是表示单链表的头 2、后面每添加一个节点,就直接加...
2021-11-27 13:09:50
127
原创 Java数据结构和算法(数组模拟环形队列)
数组模拟环形队列:使用数组模拟环形队列的思路分析:思路: 1、front变量的含义做一个调整:front就指向队列的第一元素,也就是说arr[front]就是队列的第一个元素。 front的初始值=0; 2、rear变量的含义做一个调整:rear指向队列的最后一个元素的最后一个位置。(希望空出一个空间作为约定) rear的初始值=0; 3、当队列满时,条件是(rear+1) % maxSize == front【满】 4、对...
2021-11-25 21:27:23
372
原创 Java数据结构和算法(队列)
队列: 1、先进先出 2、队列是一个有序列表,可以使用数组,或者链表来实现。 3、先存入队列的数据,要先取出。后存入的数据要后取出。 4、创建队列,存数据,取数据。 5、加入数据:将尾指针往后移:rear+1,当front == rear 【空】 6、若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数组元素中,否则无法存入数据。rear == maxSize-1【队列满】代码实现:package co...
2021-11-25 21:23:55
124
原创 Java数据结构和算法(稀疏数组)(棋盘问题)
1、数据(date)结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构,学好了数据结构可以编写出更漂亮,效率更高的代码。 2、程序 = 数据结构 + 算法。 3、数据结构是算法的基础。 4、实际编程中遇到的问题:Java代码: public static void main(String[] args){ String str = "Java.Java.hello world!"; ...
2021-11-24 21:43:13
873
1
原创 Thinking in Java(整理笔记第二天)
1.5 复用具体实现 1、一旦你有了这样的设计,它就可供复用。代码复用是面向对象程序设计语言所提供的最了不起的优点之一。 2、新的类可以由任意数量、任意类型的其他对象以任何可以实现新的类中想要的功能的方式所组成。 3、新类的成员对象通常都被声明为private,使得使用新类的客户端程序员不能访问他们。这也使得你可以在不干扰现有客户端代码的情况下,修改这些成员。也可也在运行时修改这些成员对象,以实现动态修改程序的行为。1.6 继承 1、因为不需要在问题描述和解决...
2021-11-23 20:56:25
283
原创 Thinking in Java(整理笔记第一天)
第一章:对象导论1.1 抽象过程1)万物皆为对象。将对象设为奇特的变量,它可以存储数据,除此之外,你还可以要求他在自身上执行操作。2)程序是对象的集合,它们通过发送信息来告知彼此所要做的。想要请求一个对象按,就必须对该对象发送一条消息。3)每个对象都有自己的其他对象所构成的存储。可以通过创建包含现有对象的包的方式来创建新类型的对象。4)每个对象都拥有其类型,每个对象都是某个类的一个实例。5)某一特定类型的所有对象都可以接受同样的消息。1.2 每个对象都有一个接口 1..
2021-11-18 20:48:54
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅