头尾链表可以在头结点和尾结点分别进行插入和删除操作

java代码如下:

package 数据结构;public class FirstLastList {Node first;//头结点Node last;//尾结点public FirstLastList(){first=null;last=null;}public boolean isEmpty(){return first==null;}public void insertFirst(int value){//插入元素,在头结点前面插入Node node=new Node(value);if(isEmpty()){last=node;}node.next=first;first=node;}public void insertlast(int value){//从尾结点插入Node node=new Node(value);if(isEmpty()){first=node;}else{last.next=node;//从尾结点插入}last=node;}public int deletFirst(){//删除元素,从头结点开始if(first.next==null){//如果头结点的下一个结点为空,则只剩一个结点,此时将尾结点置为空,以便下次使用last=null;}Node temp=first;first=first.next;//把后面的结点往前移进行删除,最后剩一个结点时first和last均为nullreturn temp.data;}public void display(){//打印链表的数据,从头结点开始Node t=first;while(t.next!=null){t.display();t=t.next;}//当t的下一个结点为null时,此时t到了尾结点,然后跳出循环,打印尾结点t.display();;}public Node chazhao(int value){//按值查找Node tt=first;while(tt.data!=value){//当tt结点的值不符合要求时,往他的邻结点查找if(tt.next==null){//当结点的值不符合且后面也没有结点时,则返回null,没找到return null;}tt=tt.next; }return tt;}public Node shangchu(int value){//按值删除并输出值Node tt=first;Node ty=first;//ty作为新一个tt的上一个结点,用来进行删除操作while(tt.data!=value){if(tt.next==null){return null;}ty=tt;tt=tt.next;}if(tt==first){first=first.next;}else{ty.next=tt.next;//把该节点前一个结点的下一个结点值变为该节点的下一个结点,即完成了删除操作}return tt;}
}

结点Node类的代码如下:

package 数据结构;public class Node {int data;//数据public Node next;//下一个结点public Node previous;//上一个结点public Node(int value){this.data=value;}public void display(){System.out.println(data+"");}
}

测试:

package 数据结构;public class TestFirstlastList {
public static void main(String args[]){FirstLastList tt=new FirstLastList();tt.insertFirst(1);tt.insertFirst(2);tt.insertFirst(3);tt.display();tt.deletFirst();tt.display();
}
}

输出结果如下:

好啦,这次就到这里啦,有问题可以和我留言哦!

邮箱:2321591758@qq.com

其他博客的链接:

Github个人网站      知乎      简书

欢迎各位访问哦,这次就到这里啦!

java数据之头尾链表相关推荐

  1. java数据接口之链表_Java数据结构和算法之链表

    三.链表 链结点 在链表中,每个数据项都被包含在'点"中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LI ...

  2. java数据链表 有什么用_链表(linked list)这一数据结构具体有哪些实际应用?

    最显著的应用就是文件系统. 你格式化硬盘时会让你选择fat32.ntfs格式,其实就是让你选择存储链表空间规模及格式.为提高系统效率,你有时需要做文件碎片整理,这说明一个文件的数据不一定是连续存放的, ...

  3. 数据结构Java实现03----单向链表的插入和删除b

    文本主要内容: 链表结构 单链表代码实现 单链表的效率分析 一.链表结构: (物理存储结构上不连续,逻辑上连续:大小不固定)            概念: 链式存储结构是基于指针实现的.我们把一个数据 ...

  4. 红黑树在java中的作用_带你真正理解Java数据结构中的红黑树

    红黑树是平衡的二叉树,它不是一个完美的平衡二叉树,但是在动态插入过程中平衡二叉搜索树的代价相对较高,所以红黑树就此出现,下面就让爱站技术频道小编带你一起进入下文了解一下吧! 一.红黑树所处数据结构的位 ...

  5. 图解Java数据结构之环形链表

    本篇文章介绍数据结构中的环形链表. 介绍 环形链表,类似于单链表,也是一种链式存储结构,环形链表由单链表演化过来.单链表的最后一个结点的链域指向NULL,而环形链表的建立,不要专门的头结点,让最后一个 ...

  6. java语言实现单链表---不含头结点

    java语言实现单链表---不含头结点 一.相关概念 1.什么是线性表 2.什么是顺序表 3.什么是链表 4.单链表.双链表.循环单链表.循环双链表 5.头结点和首结点 6.常见的栈和队列与线性表的关 ...

  7. Java数据结构——Java语言下的链表

    文章目录 1. Java语言下的链表 1.1 内部类定义结点 1.2 初始链表,只有头结点 1.3 清空链表 1.4 返回元素的位置(在第几个结点) 1.5 在某个结点处插入元素 1.5 删除某个结点 ...

  8. Java数据结构——用单链表编写一个简易通讯录

    Java数据结构--用单链表编写一个简易通讯录 1.定义线性表的抽象数据类型(接口) 2.定义单链表的结点Node类 3.定义数据域中的联系人Person类 4.编写顺序表(类) 5.编写测试程序(m ...

  9. Java 数据持久化系列之池化技术

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 在上一篇文章Java 数据持久化系列之JDBC中,我们了解到使用 ...

最新文章

  1. python基础===pip安装模块失败
  2. 2020 操作系统第三天复习(习题总结)
  3. 新型冠状病毒传染性有多强?何时达到疫情峰值?来看一下数学和统计建模结果...
  4. 米斯特白帽培训讲义 漏洞篇 文件包含
  5. 服务器虚拟机要怎么安装,服务器虚拟机怎么安装
  6. FFmpeg 软编码H.264与H.265
  7. 服务器linux攻击方法,Linux操作系统中实现DDOS攻击的方法
  8. 半桥llc 增益 matlab程序,“狠”完整的LLC谐振半桥电路分析与计算!
  9. 【数据结构】哈希表、哈希值计算分析
  10. java课程设计纸牌游戏_java练习项目之纸牌游戏实例源码
  11. python爬虫-爬取boss直聘的职位信息
  12. Doris的基本概述
  13. Servlet session: 用session实现简单 购物车
  14. 数字图像处理实验二 图像变换
  15. MLAPP(翻译)—第一章
  16. 基于Java的室内停车场管理系统
  17. 计算机工作模式s0 s1,电源选项中S0,S1,S2,S3,S4,S5的含义.docx
  18. 【算法】图上两点间的最短路径
  19. Pyqt+Mimics优化计算机辅助设计工作流
  20. Word文档里有空白但无法打字怎么回事?

热门文章

  1. 2023年有哪些值得推荐的蓝牙耳机?小米|南卡|JBL等等高性价比蓝牙耳机推荐
  2. 谷歌adwords教程_区块链技术作为Google AdWords中的安全剧院
  3. STM32+MLX90614红外测温
  4. GitHub快速学习-三
  5. 网口灯电路——反相器
  6. js实现html搜索关键词高亮显示(标红)
  7. NAACL2021阅读理解论文整理
  8. java 微信公众号乱码_(原创)开发微信公众平台遇到的乱码等问题的解决
  9. kali下载速度慢_kali Linux 2020.1最新安装教程,绝对能帮你安装好!不是root、没有桌面、中文乱码、下载太慢、ssh链接等问题!...
  10. 番茄钟工作法:你真的了解番茄钟么?