SingleLinkedListDemo.java

package com.dym.linkedlist;import java.util.Stack;public class SingleLinkedListDemo {public static void main(String[] args) {//进行测试//先创建节点HeroNode hero1 = new HeroNode(1, "宋江", "及时雨");HeroNode hero2 = new HeroNode(2, "卢俊义", "玉麒麟");HeroNode hero3 = new HeroNode(3, "吴用", "智多星");HeroNode hero4 = new HeroNode(4, "林冲", "豹子头");//创建要给链表SingleLinkedList singleLinkedList = new SingleLinkedList();//加入singleLinkedList.add(hero1);singleLinkedList.add(hero4);singleLinkedList.add(hero2);singleLinkedList.add(hero3);//显示一把singleLinkedList.list();}
}//定义SingleLinkedList 管理我们的英雄
class SingleLinkedList {//先初始化一个头节点, 头节点不要动, 不存放具体的数据private HeroNode head = new HeroNode(0, "", "");//添加节点到单向链表//思路,当不考虑编号顺序时//1. 找到当前链表的最后节点//2. 将最后这个节点的next 指向 新的节点public void add(HeroNode heroNode) {//因为head节点不能动,因此我们需要一个辅助遍历 tempHeroNode temp = head;//遍历链表,找到最后while(true) {//找到链表的最后if(temp.next == null) {//break;}//如果没有找到最后, 将将temp后移temp = temp.next;}//当退出while循环时,temp就指向了链表的最后//将最后这个节点的next 指向 新的节点temp.next = heroNode;}//显示链表[遍历]public void list() {//判断链表是否为空if(head.next == null) {System.out.println("链表为空");return;}//因为头节点,不能动,因此我们需要一个辅助变量来遍历HeroNode temp = head.next;while(true) {//判断是否到链表最后if(temp == null) {break;}//输出节点的信息System.out.println(temp);//将temp后移, 一定小心temp = temp.next;}}
}//定义HeroNode , 每个HeroNode 对象就是一个节点
class HeroNode {public int no;public String name;public String nickname;public HeroNode next; //指向下一个节点//构造器public HeroNode(int no, String name, String nickname) {this.no = no;this.name = name;this.nickname = nickname;}//为了显示方法,我们重新toString@Overridepublic String toString() {return "HeroNode{" +"no=" + no +", name='" + name + '\'' +", nickname='" + nickname + '\'' +", next=" + next +'}';}
}

HeroNode{no=1, name='宋江', nickname='及时雨', next=HeroNode{no=4, name='林冲', nickname='豹子头', next=HeroNode{no=2, name='卢俊义', nickname='玉麒麟', next=HeroNode{no=3, name='吴用', nickname='智多星', next=null}}}}
HeroNode{no=4, name='林冲', nickname='豹子头', next=HeroNode{no=2, name='卢俊义', nickname='玉麒麟', next=HeroNode{no=3, name='吴用', nickname='智多星', next=null}}}
HeroNode{no=2, name='卢俊义', nickname='玉麒麟', next=HeroNode{no=3, name='吴用', nickname='智多星', next=null}}
HeroNode{no=3, name='吴用', nickname='智多星', next=null}

Process finished with exit code 0

单链表的创建示意图, 显示单向链表的分析相关推荐

  1. java数组转换成单链表_【转】单向链表(单链表)的Java实现

    最近被问到链表,是一个朋友和我讨论Java的时候说的.说实话,我学习编程的近一年时间里,学到的东西还是挺少的.语言是学了Java和C#,关 于Web的学了一点Html+css+javascript.因 ...

  2. (C++版)链表(一)——实现单向链表创建、插入、删除等相关操作

    http://blog.csdn.net/fisherwan/article/details/25557545 前段时间用C语言实现了链表的相关操作,但是发现当时挺清楚的,过了一段时间又忘的差不多了, ...

  3. php链表构造,用PHP实现单向链表结构

    链表的结构是由一个一个节点组成的,所谓链,就是每个节点的头尾连在一起.而单向链表就是:每个节点包含了当前节点的值和下一个节点引用.双向链表就是每个节点包含了当前节点的值和上下两个节点的引用.相对于数组 ...

  4. 数据结构与算法java - 03 链表,单向链表,逆序打印单向链表

    链表 Linked List 有序 链表是以节点的方式来存储,链式存储 每个节点包含 data 域, next 域:指向下一个节点 链表的各个节点不一定是连续存放 链表分带头节点的链表和没有头节点的链 ...

  5. php mysql 链表_php实现数据结构的单向链表

    啥是单向链表 链表是以链式存储数据的结构,其不需要连续的存储空间,链表中的数据以节点来表示,每个节点由元素(存储数据)和指针(指向后继节点)组成. 单向链表(也叫单链表)是链表中最简单的一种形式,每个 ...

  6. 链表问题5——反转部分单向链表

    题目 给定一个单向链表的头节点head,以及两个整数from和to,在单向链表上把第from个节点到第to个节点这一部分进行反转. 输入 调整结果为 1->2->3->4->5 ...

  7. python链表的创建_python数据结构之链表的实例讲解

    在程序中,经常需要将组(通常是同为某个类型的)数据元素作为整体 管理和使,需要创建这种元素组,变量记录它们,传进传出函数等. 组数据中包含的元素个数可能发变化(可以增加或删除元素). 对于这种需求,最 ...

  8. (C语言版)链表(二)——实现单向循环链表创建、插入、删除、释放内存等简单操作

    http://blog.csdn.net/fisherwan/article/details/19754585 昨天写了单向链表的代码,今天上午把单向循环链表的程序给敲完了.链表的相关操作一样的,包含 ...

  9. C语言之链表:单向链表,循环链表,双向链表

    C语言之链表:单向链表,循环链表,双向链表 提起链式存储结构,其与数组是两个非常基础的数据结构,每当提到链式存储结构时,一般情况下我们都会将其与数组放到一块儿来比较. 对于数组与链表,从结构上来看,数 ...

最新文章

  1. mysql5.6英文版安装步骤_mysql5.6版本安装步骤详解
  2. Django - Django框架 简单介绍
  3. ./和bash的区别
  4. HEVC/H265 性能分析
  5. 阿里云解决方案架构师,讲述分布式架构云平台解决方案(附图文)
  6. ultraedit里面gbk编码在哪
  7. 修改k8s的集群域名后缀
  8. python转二进制_python转二进制
  9. 《炬丰科技-半导体工艺》采用湿法工艺制备的具有自洁表面的黑硅
  10. SQL- With as 用法
  11. linux添加一块20G的scsi硬盘,Linux下添加第二块scsi硬盘.doc
  12. 静态路由的配置以及简单分析
  13. Ubuntu安装Burg
  14. 鬼谷八荒流派收集(4)核弹指
  15. 王兴在这个被互联网遗忘的网站上,留下了一万多条碎碎念。
  16. 第1章关键角色及其职责——明确职责
  17. 如何查看笔记本电池损耗情况-不借助软件
  18. 渣本毕业两年经验,知乎上已获万赞
  19. SunTorque今日分享|螺栓连接的拧紧与防松研究
  20. 前车碰撞预警——FCW,基于深度学习和单目摄像头测距的前车碰撞预警源码

热门文章

  1. Day71 分页,cookie and Session
  2. bzoj 2436: [Noi2011]Noi嘉年华
  3. Python脚本完美解决Linux环境解压.zip文件乱码问题
  4. vivado编译出错 [Synth 8-729] [Synth 8-787]
  5. Training—Capturing Photos
  6. javascript字符串截取
  7. 斐波那契数列算法(C#)
  8. USB学习6---Linux Android USB软件架构设计
  9. Android 编译命令
  10. python什么时候用类_python中什么时候使用自定义类