赞
踩
目录
使用带head头的单向链表实现 –水浒英雄排行榜管理。完成对英雄人物的增删改查操作。
在添加英雄时,直接添加到链表的尾部
思路分析:
示例代码:
- public void addHeroMsg(HeroNode node) {
- HeroNode temp = head;
- while (Optional.ofNullable(temp.getNext()).isPresent()) {
- temp = temp.getNext();
- }
- temp.setNext(node);
- }
根据排名将英雄插入到指定位置(如果有这个排名,则添加失败,并给出提示)
思路分析:
示例代码
- public void addHeroMsgByOrder(HeroNode node) {
- HeroNode temp = head;
- boolean flag = false;
- while (true) {
- if (Optional.ofNullable(temp.getNext()).isEmpty()) {
- break;
- }
- // 通过编号排序
- if (temp.getNext().getNo() > node.getNo()) {
- break;
- }
- // 判断编号是否存在
- if (temp.getNext().getNo() == node.getNo()) {
- flag = true;
- break;
- }
- temp = temp.getNext();
- }
- if (flag){
- System.out.println("编号" + node.getNo() + "已存在, 不可重复加入哦~");
- return;
- }
- node.setNext(temp.getNext());
- temp.setNext(node);
- }
思路分析示意图
示例代码
- public void deleteHeroMsg(int nodeId) {
- if (Optional.ofNullable(head.getNext()).isEmpty()) {
- System.out.println("链表中占无数据哦~");
- return;
- }
- HeroNode temp = head;
- boolean flag = false;
- while (true) {
- if (Optional.ofNullable(temp.getNext()).isEmpty()) {
- flag = true;
- break;
- }
- if (temp.getNext().getNo() == nodeId) {
- break;
- }
- temp = temp.getNext();
- }
- if (flag) {
- System.out.println("编号为" + nodeId + "的信息不存在!!!");
- return;
- }
- temp.setNext(temp.getNext().getNext());
- }
思路:1)先找到该节点,通过遍历 2)temp.setName(node.getName); ...
示例代码:
- public void updateHeroMsg(HeroNode node) {
- if (Optional.ofNullable(head.getNext()).isEmpty()) {
- System.out.println("链表中占无数据哦~");
- return;
- }
- HeroNode temp = head;
- boolean flag = false;
- while (true) {
- if (Optional.ofNullable(temp.getNext()).isEmpty()) {
- flag = true;
- break;
- }
- if (temp.getNext().getNo() == node.getNo()) {
- break;
- }
- temp = temp.getNext();
- }
- if (flag) {
- System.out.println("编号为" + node.getNo() + "的信息不存在!!!");
- return;
- }
- temp.getNext().setName(node.getName());
- temp.getNext().setNickname(node.getNickname());
- }
示例代码:
- public void showHeroMsg() {
- HeroNode next = head.getNext();
- if (Optional.ofNullable(next).isEmpty()) {
- throw new RuntimeException("链表中的元素为空哦~");
- }
- while (Optional.ofNullable(next).isPresent()) {
- System.out.println(next);
- next = next.getNext();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。