首页 > 其他分享 >模拟链表

模拟链表

时间:2023-09-29 15:55:53浏览次数:35  
标签:Node int list System 链表 size 模拟 out

  • 创建节点类
public class Node {

    int n;

    Node next;

}
  • 编写方法
public class MyLinkList {

    Node head = new Node();

    private int len=0;

    // 获取长度
    public int size(){
        return len;
    }

    // 添加元素到最后
    public void add(int n){
        // 新建节点
        Node node=new Node();
        node.n=n;
        // 如果头节点后没有元素,则直接拼接,如果有,则找到最后的元素
        Node cur=head;
        while (cur.next!=null){
            cur=cur.next;
        }
        cur.next=node;
        // 长度
        len++;
    }

    // 查找指定位置的元素
    public int get(int n){
        // 从头节点开始一直找
        Node cur=head;
        for(int i=0; i<=n; i++){
            cur=cur.next;
        }
        return cur.n;
    }

    // 插入元素到指定位置
    public void add(int i, int n){
        // 新建元素节点
        Node node=new Node();
        node.n=n;
        // 找到指定元素的前一个
        Node cur=head;
        for(int j=0; j<i; j++){
            cur=cur.next;
        }
        System.out.println("指定元素的前一个" + cur.n);
        // 找到指定的元素
        Node cur1 = cur.next;
        System.out.println("指定元素" + cur1.n);
        // 前一个元素后拼接传入的值
        cur.next=node;
        // 传入的值后拼接原来指定的值
        node.next=cur1;
        // 长度++
        len++;

    }

    // 移除指定位置的元素
    public void remove(int i){
        // 找到指定元素的前一个
        Node cur=head;
        for(int j=0; j<i; j++){
            cur=cur.next;
        }
        System.out.println("指定元素的前一个" + cur.n);
        // 找到指定的元素
        Node cur1 = cur.next;
        System.out.println("指定元素" + cur1.n);
        // 指定元素的后一个
        Node cur2 = cur1.next;
        System.out.println("指定元素的后一个" + cur2.n);
        // 前一个元素直接拼接后一个元素
        cur.next=cur2;
        // 长度--
        len--;
    }

}
  • 测试
public class test {
    public static void main(String[] args) {
        MyLinkList list=new MyLinkList();
        // 添加
        list.add(10);
        list.add(20);
        list.add(30);
        // 获取长度
        System.out.println(list.size());
        // 获取指定位置的值
        System.out.println(list.get(1));
        // 遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + ",");
        }

        System.out.println();
        // 插入到指定位置
        list.add(2,25);
        // 测试
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + ",");
        }
        System.out.println("目前长度:" + list.size());

        // 移除元素
        System.out.println();
        list.remove(1);
        // 测试
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + ",");
        }
        System.out.println("目前长度:" + list.size());

    }
}

标签:Node,int,list,System,链表,size,模拟,out
From: https://www.cnblogs.com/dogleftover/p/17737037.html

相关文章

  • 使用数组模拟集合
    编写方法publicclassMyArrayList{privateint[]n=newint[10];//动态数组privateintsize=0;//长度publicintsize(){returnthis.size;}//添加一个元素publicvoidadd(intelement){n[size]=element;......
  • 链表插入排序
    创建节点类publicclassNode{intn;Nodenext;}第1次推导publicclasstest{publicstaticvoidmain(String[]args){//新建节点Nodenode1=newNode();node1.n=2;Nodenode2=newNode();node......
  • 链表冒泡排序
    创建节点类publicclassNode{intn;Nodenext;}第1次推导publicclasstest{publicstaticvoidmain(String[]args){//新建节点Nodenode1=newNode();node1.n=9;Nodenode2=newNode();no......
  • 恩尼格玛机模拟动图
    打开恩尼格玛机模拟动图网站,可直接查看对应动图效果,具体操作如下:再次点击Encrypt后Output栏会和上次的不同..其他实际项参考下图,具体各项释义可查Enigma运行原理......
  • 模拟集成电路设计系列博客——2.2.1 折叠Cascode放大器的基本结构
    2.2.1折叠Cascode放大器的基本结构许多现代CMOS集成电路放大器设计仅用于驱动容性负载。由于驱动的是容性负载,放大器并不需要通过一个电压缓冲器来获得较低的输出阻抗。因此相比那些必须要驱动阻性负载的放大器,更可能获得更快的速度和更大的信号摆幅。而这些增长仅仅需要通过在......
  • Linux-----单链表
    Linux中实现链表//定义链表节点结构体structNode{intdata;//数据区structNode*next;//指向下一个地址域};//初始化链表为空格structNode*head=NULL;//插入元素到链表的末尾voidinsert(intdata){sturctNode*newNode=(structNode*)malloc(sizeof(struct......
  • FX3U-3A-ADP模拟量和数字量之间转换
    简单的例子:0-10V对应0-8,4-20mA对应0-30 以下是对上面例子的详解:电压:  电压(0-10V)0-10V对应着数字量0-4000数字量与变频器HZ量之间的关系是(4000-0)/(50-0)=80故如果你想转多少HZ数,就需要在后面(乘上80),这个才是你HZ数对应的数字量 注意:如果设置了M8262ON是电流输出......
  • 前端 - HbuilderX连接模拟器运行App
    HbuilderX连接模拟器运行App最近更换了一台开发电脑,然后将电脑中的HbuilderX和MEmu(逍遥模拟器)全部更新了,结果Hbuilder使用AndroidRun在模拟器上跑不起来安装包了,一直停留在如下页面上。搜索了一大圈之后发现有不少人也遇到了我的这个问题,在官方论坛上开发人员的回复是换一个......
  • Solution -「模拟赛」草莓蛋糕
      \(\max(a_x+a_y,b_y+b_x)\)的贡献形式不是独立的,并不好进行分析。考虑通过分类讨论将\(\max\)拆开。若令\(h_i=a_i-b_i\),\(h'_i=b_i-a_i\),可以发现若\(h_x\geqslanth'_y\)取值则为\(b_x+b_y\),反之亦然。  注意到\(h\)本身自带一个一维偏序关系,于......
  • 【垫底模拟】CSP-46
    考场解题T1染色(color):结论+构造结论:\(1,2,3,4\)循环节染色一定合法。证明:对于\(j-i=\)奇数质数:因为:\[\text{偶数+奇数=奇数}\\\text{奇数+奇数=偶数}\]奇偶不同色,所以可以满足所有的奇数质数。对于\(j-i=\)偶数质数\(2\):\[\text{奇数+2=偶数}\\\text{偶数+......