唉,说点废话,昨天偶尔看到一年前自己用C解约瑟夫环问题的循环链表,唏嘘不已,想想自己一年前嵌入式的梦呢,这两天发生了许多,而有些人不在了就真的不在了,心情不好,不多说了,直接上代码,只是些链表的基本操作,花些功夫看就好了。

  首先,建立一个Node类,里面内构一个Node对象和数据(用来区分);

  1. public class Node {
  2. protected Node next; //指针
  3. protected int data; //数据
  4.  
  5. public Node(int data){
  6. this.data = data;
  7. }
  8.  
  9. //显示节点
  10. public void display(){
  11. System.out.println(data+" ");
  12. }
  13. }

  然后创建一个LinkList类,里面包含了链表的一些基本方法,

  1. public class LinkList {
  2. public Node first; //定义一个头结点
  3.  
  4. public LinkList(){
  5. this.first = null;
  6. }
  7.  
  8. //插入一个头结点
  9. public void addFirstNode(int data){
  10. Node node = new Node(data);
  11. node.next = first;
  12. first = node;
  13. }
  14.  
  15. //删除一个头节点,并返回头结点
  16. public Node deleteFirstNode(){
  17. Node tempNode = first;
  18. first = tempNode.next;
  19. return first;
  20. }
  21.  
  22. //在替换掉index后面的节点。
  23. public void add(int index , int data){
  24. Node node = first;
  25. Node current = first;
  26. while(index-->0){
  27. current = node.next;
  28. node = current;
  29. }
  30. current.data = data;
  31. }
  32.  
  33. //在第index节点后面插入节点
  34. public void Insert(int index , int data){
  35. Node node = new Node(data);
  36. Node current = first;
  37. Node privious = first;
  38. while(index-->0){
  39. privious = current;
  40. current = current.next;
  41. }
  42. node.next = current;
  43. privious.next = node;
  44. }
  45.  
  46. //删除任意位置的节点
  47. public void delete(int index){
  48. Node current = first;
  49. Node privious = first;
  50. while(index-->0){
  51. privious = current;
  52. current = current.next;
  53. }
  54. if(current == first){
  55. first = first.next;
  56. }else{
  57. privious.next = current.next;
  58. }
  59. }
  60.  
  61. //根据data的值删除节点,删除找到的第一个节点
  62. public void deleteData (int data){
  63. Node privious = first;
  64. Node current = first;
  65. while(current.data!=data){
  66. privious = current;
  67. current = current.next;
  68. }
  69. if(current == first){
  70. first = first.next;
  71. }else{
  72. privious.next = current.next;
  73. }
  74. }
  75. }

  再建立一个主类,

  1. public class TestLink {
  2. public static void main(String[] args){
  3. LinkList l = new LinkList();
  4. l.addFirstNode(1);
  5. l.addFirstNode(2);
  6. l.addFirstNode(3);
  7. Node node = l.first;
  8. l.Insert(2, 5);
  9. l.deleteData(5);
  10. while(node!=null){
  11. node.display();
  12. node = node.next;
  13. }
  14. }
  15. }

  实在是没有心情继续写了,希望以后会好点,2015年8月9日18:55分。

Java程序设计之链表结构的更多相关文章

  1. 《Java数据结构》链表结构(单向链表,双向链表)

    单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始:链表是使用指针进行构造的列表:又称为结点列表,因为链表是由一个个结点组装起来的:其中每个结点都有指 ...

  2. java实现线性链表结构

    package com.hephec.ds; public class LinkedList<T> { //定义一个内部类节点Node Node实例代表链表的节点 class Node{ ...

  3. (原创)用Java实现链表结构对象:单向无环链表

    转载请注明本文出处:http://www.cnblogs.com/Starshot/p/6918569.html 链表的结构是由一个一个节点组成的,所谓链,就是每个节点的头尾连在一起.而单向链表就是: ...

  4. java实现链表结构详细代码

    一.数据准备 1. 定义节点 2.   定义链表 1.数据部分 2.节点部分 class DATA //数据节点类型 { String key; String name; int age; } cla ...

  5. Java实现链表结构的具体代码

    一.数据准备 1. 定义节点 2.   定义链表 1.数据部分 2.节点部分 class DATA //数据节点类型 { String key; String name; int age; } cla ...

  6. 20145320《Java程序设计》第3周学习总结

    20145320<Java程序设计>第3周学习总结(第四章) 教材学习内容总结 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的 ...

  7. 20155214 2016-2017-2 《Java程序设计》第5周学习总结

    20155214 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.错误会被包装为可抛出的对象,继承自java.lang.Throwable类. 2.可以利 ...

  8. 20155215 2016-2017-2 《Java程序设计》第5周学习总结

    学号 2006-2007-2 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 尝试捕捉错误对象,try,catch. 如何抛出错误对象,throw语法. error代表系统错 ...

  9. 20175209 《Java程序设计》第八周学习总结

    20175209 <Java程序设计>第八周学习总结 一.教材知识点总结 1.泛型 1.泛型类声明: 格式 class People<E> People是泛型类名称 E是泛型列 ...

随机推荐

  1. VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用

    CSDN原博文:http://blog.csdn.net/houkai363/article/details/8134787 遇到了:不能将参数 1 从“const char [5]”转换为“LPCT ...

  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②

    系列目录 上一讲我们做了日志与异常的结果显示列表,这一节我们讲要把他应用系统中来. 首先我们在App.Common类库中创建一个通用类ResultHelper,这个类里面写了,获取一个GUID,获取当 ...

  3. 在CentOS 7上安装.NET Core R2跑Hello World

    前言 在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下.原本想等发布正式版的时候在linux系统上试试,可能还需要一段时间,刚好有空可以折腾一下. 由于之前安装的Ubu ...

  4. c#中get set 的使用

    在早期学习c#的过程中,经常遇到这样的语句: public string StudentName { get{return stuName;} set{stuName=value;} } 当时也不是很 ...

  5. spring笔记6 spring IOC的中级知识

    1,spring ioc的整体流程,xml配置 spring ioc初始化的流程结合上图 步骤编号 完成的工作 1 spring容器读取配置文件,解析称注册表 2 根据注册表,找到相应的bean实现类 ...

  6. 【Java每日一题】20161228

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1228 { public s ...

  7. Atitit.eclise的ide特性-------abt 编译

    Atitit.eclise的ide特性-------abt 编译 为什么要在Intellij IDEA中使用Eclipse编译器 如果你使用Intellij Idea,你应该考虑使用Eclipse编译 ...

  8. DOM加载过程中ready和load的区别

    在浏览器地址栏输入URL地址,浏览器开始加载页面时,有以下几个过程 1.浏览器开始解析HTML文档 2. 浏览器遇到HTML文档中的<script>元素以及CSS样式文件,并且没有asyn ...

  9. 【前端优化之渲染优化】大屏android手机动画丢帧的背后

    前言 上周我与阿里的宇果有一次技术的交流,然后对天猫H5站点做了一些浅层次的分析,后面点时间基本天天都会有联系,中途聊了一些技术细节.聊了双方团队在干什么,最后聊到了前端优化.因为我本身参与了几次携程 ...

  10. 蓝牙协议中的SBC编码

    一.从信息的传输说起  上图是一个典型的蓝牙耳机应用场景.手机上的音频信息经过编码以后通过蓝牙协议被蓝牙耳机接收,经过解码以后,蓝牙耳机成功获取手机上的音频信息,然后再转化为振动被人耳识别.这是一个 ...