博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单链表的增删查改
阅读量:630 次
发布时间:2019-03-14

本文共 2494 字,大约阅读时间需要 8 分钟。

class SingleLinkList4{
//创建头节点 private Hero head = new Hero(0); public Hero getHead() {
return head; } //删除节点 public void del(int no){
if (head.getNext() == null){
System.out.println("链表为空!!!"); return; } boolean flag = false; Hero temp = head; while (true){
if (temp.getNext() == null){
break; } if (temp.getNext().getNo() == no){
//找到要删除节点的前一个节点 flag = true; break; } temp = temp.getNext(); } if (flag){
temp.setNext(temp.getNext().getNext()); }else {
System.out.println("没有找到这个节点!!!"); } } //添加节点到链表中 public void add(Hero node){
Hero temp = head; while (true){
if (temp.getNext() == null){
//找到链表的最后 break; } temp = temp.getNext();//像后移动 } temp.setNext(node); } //按照编号顺序添加链表 public void addByOrder(Hero node){
Hero temp = head; boolean flag = false; while (true){
if (temp.getNext() == null){
break; } //如果要加入的节点的编号比链表中编号要小 if (temp.getNext().getNo() > node.getNo()){
break; }else if(temp.getNext().getNo() == node.getNo()){
flag = true; break; } temp= temp.getNext(); } if (flag){
System.out.println("链表中已经存在此节点!!"); }else {
node.setNext(temp.getNext()); //像头插法 temp.setNext(node); } } //展示链表里面的数据 public void show(){
if (head.getNext() == null){
System.out.println("链表为空!!!"); return; } Hero temp = head.getNext(); while (temp != null){
//当前节点不为空 System.out.println(temp); temp = temp.getNext(); } }}class Hero{
private int no; private Hero next; @Override public String toString() {
return "Hero{" + "no=" + no + '}'; } public int getNo() {
return no; } public void setNo(int no) {
this.no = no; } public Hero getNext() {
return next; } public void setNext(Hero next) {
this.next = next; } public Hero(int no) {
this.no = no; }}

转载地址:http://rzooz.baihongyu.com/

你可能感兴趣的文章