当前位置:   article > 正文

单向链表_set next

set next

虽然链表有序,但是它是以节点形式存储的,位置不连续。每个节点存data和下一个节点的地址

链表分为有头节点的和没头节点的。

示例代码:
节点设置:

  1. package single_link;
  2. public class Node {
  3. private int num;
  4. private String name;
  5. private String nickname;
  6. private Node next;
  7. public Node(int num,String nickname,String name) {
  8. this.name=name;this.num=num;this.nickname=nickname;
  9. }
  10. public int getNum() {
  11. return num;
  12. }
  13. public void setNum(int num) {
  14. this.num = num;
  15. }
  16. public String getName() {
  17. return name;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. public String getNickname() {
  23. return nickname;
  24. }
  25. public void setNickname(String nickname) {
  26. this.nickname = nickname;
  27. }
  28. public Node getNext() {
  29. return next;
  30. }
  31. public void setNext(Node next) {
  32. this.next = next;
  33. }
  34. public String toString() {
  35. return nickname+name;
  36. }
  37. }

链表设置:
 

  1. package single_link;
  2. public class linked_list {
  3. private Node headNode=new Node(0,"","") ;
  4. //新建链表时加入元素,加到链表末尾
  5. public void add(Node newNode) {
  6. Node tmp=headNode;
  7. while (true) {
  8. if (tmp.getNext()==null) {
  9. break;
  10. } else {
  11. tmp=tmp.getNext();
  12. }
  13. }
  14. tmp.setNext(newNode);
  15. }
  16. //展示链表
  17. public void showList() {
  18. if (headNode==null) {
  19. System.out.println("null");
  20. }
  21. System.out.println(headNode);
  22. Node tmp=headNode;
  23. while (tmp.getNext()!=null) {
  24. System.out.println(tmp.getNext());
  25. tmp=tmp.getNext();
  26. }
  27. }
  28. //将一个节点以num的顺序加入到链表中
  29. public void insert(Node newNode) {
  30. Node tmp=headNode;
  31. while (tmp.getNum()<newNode.getNum()&&tmp.getNext()!=null) {
  32. if (tmp.getNext().getNum()>newNode.getNum()) {
  33. newNode.setNext(tmp.getNext());
  34. tmp.setNext(newNode);
  35. return;
  36. }else {
  37. tmp=tmp.getNext();
  38. }
  39. }
  40. tmp.setNext(newNode);
  41. }
  42. //修改某个编号
  43. public void modify(int num,String nickname,String name) {
  44. Node tmp=headNode;
  45. while (tmp!=null) {
  46. if (tmp.getNum()==num) {
  47. tmp.setNickname(nickname);
  48. tmp.setName(name);
  49. return;
  50. } else {
  51. tmp=tmp.getNext();
  52. }
  53. }
  54. System.out.println("查无此人");
  55. }
  56. //删除某个编号
  57. public void del(int num) {
  58. if (headNode.getNum()==num) {
  59. headNode=headNode.getNext();
  60. return;
  61. }
  62. Node tmp=headNode;
  63. while (tmp.getNext()!=null) {
  64. if (tmp.getNext().getNum()==num) {
  65. tmp.setNext(tmp.getNext().getNext());
  66. return;
  67. } else {
  68. tmp=tmp.getNext();
  69. }
  70. }
  71. System.out.println("查无此人");
  72. }
  73. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/858817
推荐阅读
相关标签
  

闽ICP备14008679号