首页 > 作文

java单链表使用总结

更新时间:2023-04-04 17:38:05 阅读: 评论:0

链表的概念:

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点(链表中的每一个元素称为节点)组成,节点可以在运行时动态生成。每个节点包含两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。相对于线教师颂性表顺序结构,操作复杂。由于不必按顺序存储,链表在插入的时候可以达到o(1)的复杂度,比另一种线性表顺序表快得多,但查找一个节点或者访问特定编号的节点则需要o(n)的时间,而线性表和顺序表相应的时间复杂度分别是o(logn)和o(1)。

链表的优势

不需要知道数据的大小,可以充分利用计算机内存空间,实现灵活的内存动态管理
链表允许插入和移除表上任意位置上的节点(但是不允许随机存取)

链表的缺点

不能像数组一样随机读取
增加了空间的开销(增加了节点的指针域)

代码实现

定义一个节点类

public class listnode {//定义节点类  int val;  listnode next;  listnode(int x) {    val = x;  }  //将数组的值赋给链表  public listnode getlist(int[] sums) {    listnode dummyhead = new listnode(0);    listnode curr = dummyhead;    for (int i = 0; i < sums.length; i++) {      curr.next = new listnode(sums[i]);      curr = curr.next;    }    return dummyhead.next;  }  //将链表的值赋给list并打印  public void showlist(listnode listnode) {    list list = new arraylist();    while (listnode != null) {      list.add(listnode.val);      listnode = listnode.next; 山东专升本考试科目   }    for (int i = 0; i < list.size(); i++) {      system.out.println(list.get(i));    }  }  /**  * leetcode第二题  *  * 给出两个非空的链表用来表示两个非负的整数,  * 其中,它们各自的位数是按照逆序的方式存储的,  * 并且它们的每一个节点只能存储一位数组。  * @param l1  * @param l2  * @return  */  public listnode addtwonumbers(listnode l1, listnode l2) {    listnode dummyhead = new listnode(0);    listnode p = l1, q = l2, curr = dummyhead;    int carry = 0;    while (p != null || q != null) {      int x = (p != null) ? p.val : 0;      int y = (q != null) ? q.val : 0;      int sum = carry + x + y;      carry = sum / 10;      curr.next = new listnode(sum % 10);      curr = curr.next;      if (行政学p != null) p = p.next;      if (q != null) q = q.next;    }    if (carry > 0) {      curr.next = 三联学院官网new listnode(carry);    }    return dummyhead.next;  }}

测试方法

public class main {  public static void main(string[] args) {    int a[] = {2, 4, 3};    int b[] = {5, 6, 4};    listnode curr=new listnode(0);    listnode l1=curr.getlist(a);//    curr.showlist(l1);    listnode l2=curr.getlist(b);//    cu想和你一起慢慢变老rr.showlist(l2);    listnode l3=curr.addtwonumbers(l1,l2);    curr.showlist(l3);  }}

输入[2,4,3],[5,6,4]

输出[7,0,8]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 17:38:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1ff7e65a65da5ca3dac554d8d6dd2c98.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:java单链表使用总结.doc

本文 PDF 下载地址:java单链表使用总结.pdf

标签:节点   链表   顺序   数组
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图