Java 链表之头插法和尾插法区别
咱啥话也不多说,直接上代码!
package linkedNode;import java.util.Scanner;/*** 链表相关练习*/
public class LinkedNode {public static class ListNode {int value = 0;ListNode next = null;public ListNode() {}public ListNode(int value, ListNode next) {this.value = value;this.next = next;}}public static void main(String[] args) {}/*** 一般设计最近使用之类的功能时用头插法去做* 1.插入速度快。每次都只要插在头节点* 2.数据按插入顺序倒叙排列,遍历时时按照插入倒序输出* 3.头节点永远在变化,需要维护一个头节点*/public static void insertBeforeHead() {Scanner sc = new Scanner(System.in);int num = 10;ListNode header = null;while (num-- > 0) {int value = sc.nextInt();ListNode node = new ListNode(value, header);header = node;}}public static ListNode findByHeadInsert(ListNode node, int value){if(node == null) return null;if(node.value == value)return node;elsereturn findByHeadInsert(node.next, value);}/*** 1.插入速度慢。每次插入都要遍历整个链表* 2.遍历时按照插入正序输出* 3.头节点永远不变。不需要维护头节点的引用*/public static void insertAfterTail() {Scanner sc = new Scanner(System.in);int num = 10;ListNode header = new ListNode();while (num-- > 0) {int value = sc.nextInt();ListNode node = new ListNode(value, null);header.next = node;header = node;}}public static ListNode findByTailInserr(ListNode node, int value){if(node == null) return null;if(node.value == value)return node;elsereturn findByTailInserr(node.next, node.value);}
}
头插法特点:
1.插入速度快,每次都是插在头部节点。
2.遍历时按照插入时倒叙输出
3.需要维护一个头节点,每次插入进去后就将插入节点引用赋给头节点
尾插法优缺点:
1.插入速度慢,每次插入需要遍历整个链表
2.遍历时按照插入顺序输出
3.头节点永远不变,不需要维护头节点引用。
头插法适合做如网站的最近使用功能。
Java 链表之头插法和尾插法区别相关推荐
- 单链表的头插法和尾插法c语言实现
/*单链表的头插法和尾插法c语言实现*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #d ...
- 链表的头插法和尾插法——头插尾插交替插入
private static ListNode dummy = new ListNode(0);//头插法public static void headInsert(ListNode node){if ...
- 单链表建立——头插法和尾插法
引言 当我们准备采用单链表形式实现线性表,第一步就是要建立单链表,即初始化.由于链表是一个动态结构,不需要预先分配空间,因此生成链表的过程就是"逐个插入"的过程,插入结点的位置可以 ...
- 单链表的头插法和尾插法实现代码(无头结点)
/*头指针,可以发现head是赋值为NULL,而不是head->next*/ //-----------------头插法------------------- node *head, *p; ...
- hashmap头插法和尾插法区别
前言 HashMap 应该算是 Java 后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的 Java 基础. 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之 ...
- hashmap头插法和尾插法区别_Java程序员必知:HashMap进行put操作会不会引起死循
HashMap进行put操作会引起死循环? 最近在磕<java并发编程艺术>,在看到第六章的时候出现了下面这段我不是很理解的东西,如下 <java并发编程艺术>截取 为什么要使 ...
- 关于单链表的头插法和尾插法
#include<stdio.h> #include<stdlib.h> typedef struct Node { // 定义的链表类型 ...
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...
- 头插法和尾插法创建链表(有无头结点)
头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...
- 采用头插法和尾插法建立单链表
面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...
最新文章
- CentOS 7 安装Boost 1.67及boost_python
- Android与iOS:谁更适合HTML 5?
- ubuntu创建新用户名和密码以及查看删除用户
- 【风控模型】神经网络DNN算法构建信用评分卡模型
- richtextbox自动滚动到最下面_自动滚动式连续真空包装机简介
- 删除按钮_汪涵拜师学艺第七篇:往来单位查询删除按钮和新增判断的设计!
- ffmpeg转换格式
- oracle analyze 全部表,Oracle analyze table
- ctfshow-网络迷踪-新手上路 ( 使用百度搜图收集景点信息)
- LINUX yum用法
- WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- 时序分析基本概念介绍——SDC概述
- 论文阅读笔记(七)——Thin MobileNet
- [NIPS 2018] Delta Encoder: An Effective Sample Synthesis Method for Few Shot Object Recognition
- 八.国民技术MCU开发之 XFMC模块之PSRAM
- php跑满CPU的问题终于发现原因了
- SOA 微服务 RPC WebService Soap关系详解
- python对电商运营有帮助吗_建议收藏丨电商运营必备,跨境卖家都在用这个狠招!...
- mysql 分桶_mysql的分组和过滤桶where的组合运用
- Java编写“诸神黄昏“小游戏