利用类实现链表
1).定义java类实现一个链表,参考C语言链表一节的知识,实现链表的创建,增加节点(有序插入),
删除节点,遍历,显示,查找
2).利用上面实现有链表,完成一个电话本管理程序,实现个人电话本的功能
可以增加条目,删除,修改,按姓名查找
救救孩子,简单的java程序
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-赖老师(软件之家) 2021-10-31 12:07关注
public class Node { String name; //自引用,下一个节点的地址 Node next; public Node() { } public Node(String name) { this.name = name; next = null; } }
public class Link { //定义头节点 Node head; //初始化 public Link() { //建表 head = new Node(); head.next = null; } //新增节点 public void addNode(String data){ /*1.获取表头 *2.通过表头找到最后一个元素; *3.把新增的节点放到最后一个元素的后面 * */ Node p = head; while(p.next!=null){ p=p.next; } //需要新增的节点 Node temp = new Node(data); p.next = temp; } //删除节点 public void delNode(String data){ /*1.获取表头 *2.通过表头找到最后一个元素; *3.把最后一个元素删除 * */ Node p = head; while(p.next!=null){ //删除节点 if(p.next.name.equals(data)){ p.next = p.next.next; break; }else{ p=p.next; } } } //遍历 public void display(){ Node p = head; while(p.next!=null){ System.out.println(p.next.name+"->>"); p=p.next; } } //查找 public void findNode(String data){ /*1.获取表头 *2.通过表头找到最后一个元素; *3.把最后一个元素删除 * */ Node p = head; while(p.next!=null){ //删除节点 if(p.next.name.equals(data)){ System.out.println("data="+p.next.name); break; }else{ p=p.next; } } } //插入节点 public void insertNode(String param,String data){ /*param表示新增的节点要插入到该节点的后面 * *1.获取表头 *2.通过表头找到param元素的节点; *3.把新增的节点放到改节点的后面 * */ Node p = head; while(p.next!=null){ if(p.next.name.equals(param)){ Node t = p.next; Node insertNode = new Node(data); insertNode.next = t.next; t.next = insertNode; break; }else{ p=p.next; } } } //链表大小 public int size(){ int n=0; Node p = head; while(p.next!=null){ p=p.next; n++; } return n; } public static void main(String[] args) { Link link = new Link(); link.addNode("组长"); link.addNode("部门经理"); link.addNode("主管副总"); link.addNode("总经理"); link.display(); System.out.println("size="+link.size()); link.delNode("部门经理"); link.display(); System.out.println("---------------------------"); link.insertNode("组长", "部门经理"); link.display(); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度