1) 链表是以节点的方式来存储, 是链式存储
2) 每个节点包含 data 域, next 域:指向下一个节点.
3) 链表的各个节点不一定是连续存储.
4) 链表分 带头节点的链表和 没有头节点的链表,根据实际的需求来确定

代码实现

package com.testlist;/*** 数据结构-链表的实现*/
public class LinkedListDemo {public static void main(String[] args) {MyLinkedList linkedList = new MyLinkedList();HeroNode node1 = new HeroNode(1, "李白", null);HeroNode node2 = new HeroNode(2, "李二", null);HeroNode node3 = new HeroNode(3, "李三", null);linkedList.add(node1);linkedList.add(node2);linkedList.add(node3);linkedList.list();//节点删除// linkedList.delete(3);linkedList.list();HeroNode updateNode = new HeroNode(2, "修改", null);linkedList.update(updateNode);linkedList.list();}/*** 定义链表类*/static class MyLinkedList {/*** 定义一个头节点*/private HeroNode head = new HeroNode(0, "", null);/*** 定义add方法*/public void add(HeroNode node) {//temp是一个辅助节点,相当一一个指针,方便进行遍历HeroNode temp = head;while (true) {if (temp.next == null) {temp.next = node;break;} else {temp = temp.next;}}}/*** 进行链表的遍历*/public void list() {/*** 定义一个临时节点,相当一个指针,方便进行遍历*/HeroNode temp = head;while (true) {//最后一个节点if (temp.next == null) {//打印最后一个节点System.out.println(temp);break;} else {System.out.println(temp);temp = temp.next;}}}/*** 节点的删除*/public void delete(int no) {//临时节点HeroNode temp = head;while (true) {if (temp.next == null) {System.out.println("该node不存在,删除失败");break;} else {if (temp.next.no == no) {temp.next = temp.next.next;break;}temp = temp.next;}}}/*** 节点的修改*/public void update(HeroNode node) {//临时节点HeroNode temp = head;while (true) {if (temp.next == null) {System.out.println("该节点不存在,节点修改失败");break;} else {if (temp.next.no == node.no) {temp.next.name = node.name;break;}temp = temp.next;}}}}/*** 定义node节点信息*/static class HeroNode {private int no;private String name;private HeroNode next;public HeroNode(int no, String name, HeroNode next) {this.no = no;this.name = name;this.next = next;}public int getNo() {return no;}public void setNo(int no) {this.no = no;}public String getName() {return name;}public void setName(String name) {this.name = name;}public HeroNode getNext() {return next;}public void setNext(HeroNode next) {this.next = next;}@Overridepublic String toString() {return "HeroNode{" +"no=" + no +", name='" + name + '\'' +"" +'}';}}
}

数据结构 --java实现单链表相关推荐

  1. java实现单链表常见操作,java面试题,java初级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 一. ...

  2. 数据结构与算法--单链表相关面试题

    此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢! 一.概述 获取单链表的有效元素个数[新浪面试题1] 获取单链表倒数第k个结 ...

  3. python数据结构基础(单链表,多链表,二叉树)

    python数据结构基础(单链表,多链表,二叉树) 数据结构指数据对象中数据元素之间的关系 Python 给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做 ...

  4. 数据结构之——《单链表》

    数据结构之--<单链表> 1.链表概念 2.链表分类 3.接口函数实现 1.链表概念 链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现. ...

  5. 数据结构精讲——单链表

    新手必会数据结构精讲--单链表 链表的介绍 概念:链表是一种物理存储结构上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 . 实际中链表的结构非常多样,以下情况组合起来就 ...

  6. java单链表通讯录_[Java教程]用java实现单链表(菜鸟出征)

    [Java教程]用java实现单链表(菜鸟出征) 0 2016-03-24 14:00:06 package code;class Node{ Node next; int data; public ...

  7. Java实现单链表、栈、队列三种数据结构

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:远航 cnblogs.com/yang-guang- ...

  8. 【算法数据结构Java实现】Java实现单链表

    1.背景 单链表是最基本的数据结构,仔细看了很久终于搞明白了,差不每个部分,每个链都是node的一个对象.需要两个参数定位:一个是index,表示对象的方位.另一个是node的对象. 2.代码 nod ...

  9. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

    转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...

最新文章

  1. mysql构架,索引,视图,查询语句
  2. 口令即漏洞 放弃它吧
  3. os_mem.c(全)
  4. blob转file对象_JavaScript Blob 对象解析
  5. redis缓存穿透、缓存击穿、缓存雪崩概念及解决方案
  6. 20应用统计考研复试要点(part30)--简答题
  7. 高密自智,体小量大,希捷Exos Corvault存储系统为数据洞察赋能
  8. 模仿vue自己动手写响应式框架( - v-for
  9. 在Javascript中得到站点的根路径
  10. java访问win10共享盘失败_Win10不能访问共享磁盘的解决方法(亲测能用)
  11. 游戏筑基开发之利用文件函数读出文件数据及处理(反序列化)(C语言)
  12. 手把手教你用C语言实现求质数(素数),5大方法任君挑选
  13. 裸辞后,随便找份工作干着还是等找到满意的为止?
  14. 继 layui 之后, jQuery Mobile 宣布完全弃用!
  15. Java实现合成图片
  16. 伤害世界怎么自建服务器,《伤害世界Hurtworld》服务器架设方法图文详解 怎么开服?...
  17. 怎么查看一段时间的计算机ip,如何查看电脑中使用过的历史IP地址
  18. ORA-00600:[qctcte1]内部错误一例
  19. 编程不只是兴趣爱好,更是优秀成长路径,您了解吗?
  20. 我在蚂蚁金服技术风险部做“医生”

热门文章

  1. 解决console.log打印对象时出现大量省略号问题,以及控制台使用表格方式查看打印数据
  2. git mr 怎样合并部分_系统掌握Git之—分离头指针与合并操作
  3. 适合新手小白学习的web前端学习路线图
  4. python 人像合成_「百度AI API」Python实现人像动漫化
  5. 中继器与集线器的区别
  6. 前后端分离的框架简记
  7. android增加来电闪光灯功能吗,安卓关于来电与短信闪光灯功能研究
  8. 功能:手机来电话,闪光灯闪烁提示
  9. 黄金代理协议是什么?
  10. Oracle基础知识总结