ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022.07.25 第七小组 王茜 学习笔记

2022-07-25 20:02:49  阅读:116  来源: 互联网

标签:Node 25 node next 链表 2022.07 data public 王茜


  多态:
编译看左边,运行看右边
多态的三个条件:
1、有继承
2、有重写
3、有父类对象指向子类引用

 

  多态的形式:

第一种多态的形式(向上转型)
   父类  父类对象 = new 子类();
第二种多态形式 (向下转型):
  发生向下转型的前提,要先发生向上转型,才能通过强转转成子类类型

instanceof关键字:判断某一个对象是否是某一个类的实例,返回值是boolean类型

 

   匿名对象:
 语法:new  类名();
 功能:
 和正常有名字的对象的功能是相同的,依旧具备了调用属性、方法的功能

 使用场景:多数用来传参,实参,多数情况下配合构造器使用

 好处:节约资源

 

  链表:是一个数据结构  
 单向链表:在维护一个节点的自身的值的同时,还要维护它的下一个值的指向
 双向链表:在维护一个节点的自身的值的同时,还要维护它的上一个和下一个值的指向

 

 

 

public class Node
 public class Node {
    //单向
    private  Integer data;
    private  Node next;

    public Node() {
    }

    public Node(Integer data, Node next) {
        this.data = data;
        this.next = next;
    }

    public Integer getData() {
        return data;
    }

    public void setData(Integer data) {
        this.data = data;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    @Override
    public String toString() {
        return "Node{" +
                "data=" + data +
                ", next=" + next +
                '}';
    }
}
public class SuperLinked
 public class SuperLinked {
    private int size;//链表的长度
    private Node first;//链表的第一个结点
    private Node last;//链表的最后一个结点
    public SuperLinked(){

    }
    public boolean add(Integer data){
        //把数据    添加到链表的尾部
        Node node=new Node(data,null);
        //把传入的数据结构建成一个结点
        if (first==null){
            first=node;
        }else {
            last.setNext(node);
        }
        last=node;
        size++;
        return  true;
    }

    public boolean add(int index,Integer data){
        //在指定位置添加元素
        Node node = getNode(index);
        Node newNode =new Node(data,null);
        if (node !=null){
            newNode.setNext(node.getNext());//命名对象
            node.setNext(new Node());
        }else {
            //如果插入的位置时null,只有一种情况,就是整个链表都是空
            first=newNode;
            last=newNode;
        }
        size++;
        return true;
    }

    public boolean remove1(){
        //默认删除头部的数据
        if (first!=null){
            first =first.getNext();
            size--;
        }
        return true;
    }
    public boolean remove2() {
        //默认删除尾部的数据
        if (size <= 0) {
            return false;
        }
        if (size < 2) {
            first=null;
            last=null;
            size--;
            return true;
        }
            if (last != null) {
                last = getNode(size - 2);
                last.setNext(null);
                size--;
            }
            return true;
    }
    //删除指定位置
    public  boolean remove(int index){
        if (size<0){
            return false;
        }
        if (size == 1) {
            first=null;
            last=null;
            size--;
            return true;
        }else {
            Node node=getNode(index-1);
            node.setNext(node.getNext().getNext());
        }
        size--;
        return true;
    }
    //修改指定位置的元素
    public boolean set (int index,Integer data){
        Node node =getNode(index);
        node.setData(data);
        return true;
    }
    public Node getNode(int index){
        if (index<0){
            index=0;
        }
        if (index>=size-1){
            index=size-1;
        }
        Node cursor=first;
        for (int i = 0; i < index; i++) {
            cursor=cursor.getNext();
        }
        return cursor;
    }

}

刚开始学习链表的时候,老师通过excel表格来演示,这样很直观的体现了链表的结构。

有两天没有更新是因为放假休息以及上的课都是复习的,没有新学习知识。

标签:Node,25,node,next,链表,2022.07,data,public,王茜
来源: https://www.cnblogs.com/wx1019/p/16518618.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有