• java链表(含案例代码展示)


    目录

    一:链表的思想

    二:链表的案例​编辑

    2.1 尾部添加结点

    2.2 按照编号进行结点的添加

    2.2 按照编号进行结点的添加

    2.3 按照编号进行结点的删除

    2.4 查看链表

    2.5 项目展示

    2.5.1 项目产品类

    2.5.2 项目产品链表功能操作

    2.5.3 项目产品链

    一:链表的思想

    物理结构图

    逻辑结构图

    二:链表的案例

    2.1 尾部添加结点

    1. public void add(GoodsNode goodsNode) {
    2. GoodsNode temp = node;
    3. while(true) {
    4. if(temp.next == null) {
    5. break;
    6. }
    7. temp = temp.next;
    8. }
    9. temp.next = goodsNode;
    10. }

    2.2 按照编号进行结点的添加

    1.直接插入到头结点的尾部

    2.插入的结点的编号小于了下一个结点的时候插入

    1. public void idAdd(GoodsNode goodsNode) {
    2. GoodsNode temp = node;
    3. boolean flg = false;
    4. while(true) {
    5. if(temp.next == null) {
    6. break;
    7. }
    8. if(temp.next.id > goodsNode.id) {
    9. break;
    10. }else if(temp.next.id > goodsNode.id) {
    11. flg = true;
    12. break;
    13. }
    14. temp = temp.next;
    15. }
    16. if(flg == true) {
    17. System.out.print("已经存在了该商品");
    18. }else {
    19. goodsNode.next = temp.next;
    20. temp.next = goodsNode;;
    21. }
    22. }

    2.2 按照编号进行结点的添加

    1. 找到目标结点

    2. 根据新的元素进行修改(价格和名称)

    1. public void updateNode(GoodsNode goodsNode) {
    2. if(node.next == null) {
    3. System.out.print("链表为空");
    4. return;
    5. }
    6. GoodsNode temp = node.next;
    7. boolean flg = false;
    8. while(true) {
    9. if(temp.next == null) {
    10. break;
    11. }
    12. else if(temp.id == goodsNode.id) {
    13. flg = true;
    14. break;
    15. }
    16. temp = temp.next;
    17. if(flg) {
    18. temp.name = goodsNode.name;
    19. temp.price = goodsNode.price;
    20. }else {
    21. System.out.print("在整个链表中未找到结点");
    22. }
    23. }
    24. }

    2.3 按照编号进行结点的删除

    1. 寻找目标结点

    2. 删除返回目标结点

    1. public void delete(int id) {
    2. GoodsNode temp = node;
    3. boolean flg = false;
    4. while(true) {
    5. if(temp.next == null) {
    6. break;
    7. }
    8. if(temp.next.id == id) {
    9. flg = true;
    10. break;
    11. }
    12. temp = temp.next;
    13. }
    14. if(flg == true) {
    15. temp.next = temp.next.next;
    16. }else {
    17. System.out.print("未找到结点");
    18. }
    19. }

    2.4 查看链表

    1. public void list() {
    2. if(node.next == null) {
    3. System.out.print("空链表");
    4. return;
    5. }
    6. GoodsNode temp = node.next;
    7. while(true) {
    8. if(temp == null) {
    9. break;
    10. }
    11. System.out.println(temp);
    12. temp = temp.next;
    13. }
    14. }

    2.5 项目展示

    2.5.1 项目产品类

    1. package linked;
    2. public class GoodsNode {
    3. public int id;
    4. public int price;
    5. public String name;
    6. public GoodsNode next;
    7. public GoodsNode(int id,int price,String name) {
    8. this.id = id;
    9. this.name = name;
    10. this.price = price;
    11. }
    12. public String toString() {
    13. return "id=" + id + "name=" + name + "price=" + price;
    14. }
    15. }

    2.5.2 项目产品链表功能操作

    1. package linked;
    2. public class LinkedList {
    3. //头结点
    4. private GoodsNode node = new GoodsNode(0,0,"");
    5. //添加节点
    6. public void add(GoodsNode goodsNode) {
    7. GoodsNode temp = node;
    8. while(true) {
    9. if(temp.next == null) {
    10. break;
    11. }
    12. temp = temp.next;
    13. }
    14. temp.next = goodsNode;
    15. }
    16. //按照商品编号进行插入
    17. public void idAdd(GoodsNode goodsNode) {
    18. GoodsNode temp = node;
    19. boolean flg = false;
    20. while(true) {
    21. if(temp.next == null) {
    22. break;
    23. }
    24. if(temp.next.id > goodsNode.id) {
    25. break;
    26. }else if(temp.next.id == goodsNode.id) {
    27. flg = true;
    28. break;
    29. }
    30. temp = temp.next;
    31. }
    32. if(flg == true) {
    33. System.out.print("已经存在了该商品");
    34. }else {
    35. goodsNode.next = temp.next;
    36. temp.next = goodsNode;;
    37. }
    38. }
    39. //修改结点
    40. public void updateNode(GoodsNode goodsNode) {
    41. if(node.next == null) {
    42. System.out.print("链表为空");
    43. return;
    44. }
    45. GoodsNode temp = node.next;
    46. boolean flg = false;
    47. while(true) {
    48. if(temp == null) {
    49. break;
    50. }
    51. else if(temp.id == goodsNode.id) {
    52. flg = true;
    53. break;
    54. }
    55. temp = temp.next;
    56. if(flg) {
    57. temp.name = goodsNode.name;
    58. temp.price = goodsNode.price;
    59. }else {
    60. System.out.print("在整个链表中未找到结点");
    61. }
    62. }
    63. }
    64. //删除结点
    65. public void delete(int id) {
    66. GoodsNode temp = node;
    67. boolean flg = false;
    68. while(true) {
    69. if(temp.next == null) {
    70. break;
    71. }
    72. if(temp.next.id == id) {
    73. flg = true;
    74. break;
    75. }
    76. temp = temp.next;
    77. }
    78. if(flg == true) {
    79. temp.next = temp.next.next;
    80. }else {
    81. System.out.print("未找到结点");
    82. }
    83. }
    84. //查看链表的每一个元素
    85. public void list() {
    86. if(node.next == null) {
    87. System.out.print("空链表");
    88. return;
    89. }
    90. GoodsNode temp = node.next;
    91. while(true) {
    92. if(temp == null) {
    93. break;
    94. }
    95. System.out.println(temp);
    96. temp = temp.next;
    97. }
    98. }
    99. }

    2.5.3 项目产品链

    1. package linked;
    2. public class LinkedTest {
    3. public static void main(String[] args) {
    4. GoodsNode goodsNode1 = new GoodsNode(1,10,"耐克运动鞋");
    5. GoodsNode goodsNode2 = new GoodsNode(2,10,"李宁运动鞋");
    6. GoodsNode goodsNode3 = new GoodsNode(3,10,"阿迪运动鞋");
    7. LinkedList list = new LinkedList();
    8. list.add(goodsNode1);
    9. list.add(goodsNode2);
    10. list.add(goodsNode3);
    11. list.list();
    12. }
    13. }

  • 相关阅读:
    中断:PL硬中断,基地址,优先级。
    计算机二级C语言经典资料汇总
    Redis数据类型-Hash-基本使用
    连连看游戏页面网站源码
    如何有效地管控人工智能的风险
    十大排序——4.堆排序
    山东首版次软件申报的好处
    【RealTek sdk-3.4.14b】RTL8812F 5G WiFi ETSI认证增加144~165信道支持修改
    WebAssembly不是软件!它是计算机中的计算机
    如何使用 OpenSSL 来检查证书,来确保网络通信的安全性?
  • 原文地址:https://blog.csdn.net/qq_56127002/article/details/126311573