双端链表--Java实现
/*双端链表--比普通链表多了一个指向最后一个节点的引用
* 特点: 链表可以进行尾巴插入--输出顺序和输入顺序一致
* 但是不可以进行尾巴删除因为没有倒数第二节点的引用
* */
public class MyFirstAndLastLinkedList {
public Link first;
public Link last; public MyFirstAndLastLinkedList() {
first = null;
last = null;
} public boolean isEmpty(){
return first == null;
} //头插入的时候注意空链表对last的处理
public void insertFirst(int key){
Link newLink = new Link(key);
if(isEmpty()){
last = newLink;
}
newLink.next = first;
first = newLink;
} //尾插入的时候注意空链表对first的处理
public void insertLast(int key){
Link newLink = new Link(key);
if(isEmpty()){
first = newLink;
}
else{
last.next = newLink;
}
last = newLink;
} //删除注意只有一个节点对last的处理
public Link deleteFirst(){
Link temp = first;
if(first.next == null){
last = null;
}
first = first.next;
return temp;
} public void displayLinkedList(){//顺链打印
//System.out.println("first---to----last");
Link current = first;
while(current!= null ){
current.diaplayLink();
System.out.print("");
current = current.next;
}
System.out.println();
} //测试该类
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
MyFirstAndLastLinkedList m = new MyFirstAndLastLinkedList(); for(int i = 0; i < arr.length; i++){
m.insertLast(arr[i]);
}
m.displayLinkedList(); } }
双端链表--Java实现的更多相关文章
- 队列(存储结构双端链表)--Java实现
/*用链表实现的队列--使用的是双端链表 *注意:空指针错误肯定是引用没有指向对象 * */ public class MyLinkedQueue { private MyFirstAndLastLi ...
- Java数据结构——用双端链表实现队列
//================================================= // File Name : LinkQueue_demo //---------------- ...
- Java单链表、双端链表、有序链表实现
单链表: insertFirst:在表头插入一个新的链接点,时间复杂度为O(1) deleteFirst:删除表头的链接点,时间复杂度为O(1) 有了这两个方法,就可以用单链表来实现一个栈了,见htt ...
- 《Java数据结构与算法》笔记-CH5-链表-3双端链表
/** * 双端链表的实现 */ class LinkA { public long dData; public LinkA next; public LinkA(long d) { dData = ...
- java实现双端链表
PS:双端链表(持有对最后一个节点的引用,允许表尾操作与表头操作等效的功能) public class DoubleLinkedList { //节点类 static class Node { pub ...
- JAVA基础——链表结构之双端链表
双端链表:双端链表与传统链表非常相似.只是新增了一个属性-即对最后一个链结点的引用 如上图所示:由于有着对最后一个链结点的直接引用.所以双端链表比传统链表在某些方面要方便.比如在尾部插入一个链结点.双 ...
- java数据结构——单链表、双端链表、双向链表(Linked List)
1.继续学习单链表,终于摆脱数组的魔爪了,单链表分为数据域(前突)和引用域(指针域)(后继),还有一个头结点(就好比一辆火车,我们只关心火车头,不关心其它车厢,只需知晓车头顺藤摸瓜即可),头结点没有前 ...
- 循环双端链表(python)
# -*- coding: utf-8 -*- class Node(object): __slots__ = ('value', 'prev', 'next') # save memory def ...
- Java数据结构——双端链表
//================================================= // File Name : FirstLastList_demo //------------ ...
随机推荐
- sublime列显示控制
Shift+右键拖拽或者Ctrl+左键单击选择多个位置
- 基于CSS UI开源框架汇总
从16年数据统计就有20几款UI框架出现在市面上,至今为止能统计的框架应该有40款左右了.前端框架都是基于HMTL5.CSS.JS开发的,这里主要给大家聊一下CSS UI开源框架有哪些?以后工作中选择 ...
- 渗透相关website
开源安全测试方法论:http://www.isecom.org/research/osstmm.html 信息系统安全评估框架:www.oissg.org/issaf 开放式web应用程序安全项目(O ...
- 《HiBlogs》重写笔记[1]--从DbContext到依赖注入再到自动注入
本篇文章主要分析DbContext的线程内唯一,然后ASP.NET Core的注入,再到实现自动注入. DbContext为什么要线程内唯一(非线程安全) 我们在使用EF的时候,可能使用相关框架封装过 ...
- 翻译连载 | 第 9 章:递归(上)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
- java 面向对象 2
一.JAVA类的定义 JAVA里面有class关键字定义一个类,后面加上自定义的类名即可.如这里定义的person类,使用class person定义了一个person类,然后在person这个类的类 ...
- 从Thread.start()方法看Thread源码,多次start一个线程会怎么样
这篇文章作为Thread类源码剖析的补充,从一个侧面来看Thread源码.也解答了面试高频问题:"多次start一个线程会怎么样?" 答案是:java.lang.IllegalTh ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- jsp base路径
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- vue-resource传参数到后端,后端取不到数据的问题
先上一段代码: this.$http.post('xxx',{Search_Text:this.search_text}).then(function(response){ // 响应成功回调 thi ...