链表 ---单链表与双链表

链表是一种基础数据结构,分为单向和双向链表。单链表每个节点包含值和指向下一个节点的链接。链表在添加和删除操作上效率高,但在查找和修改上效率低。JavaScript提供了多种循环语句,如for、while等,适用于需要迭代访问和频繁增删元素的场景。LinkedList是Java中的链表实现,实现了Queue、List和Deque接口,支持队列操作和克隆、序列化功能。
摘要由CSDN通过智能技术生成

 

  • 单链表
    • 基础知识:
      • 链表:是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点存到下一个节点的地址。链表可分为单向链表和双向链表。
      • 一个单项链表包含两个值:当前节点的值和一个指向下一个节点的链接

      • 一个双向链表有3个值:数值、向后的节点链接、向前的节点链接
      • 其中链表类似于ArrayList,是一种常用的数据容器,链表的优点是增加和删除的操作效率更高,但是查找和修改的操作效率较低
      • 使用链表的情况:1.需要通过循环迭代来访问列表中的某些元素;2.需要频繁的在列表的开头、中间、末尾等位置进行添加和删除元素操作
      • 循环迭代:循环提供了一种快速和简单的方式去做一些重复的事。其中JavaScript中提供的循环语句如下:for语句、do...while语句、while语句、label语句、break语句、continue语句、for...in语句、for...of语句
        • for语句:一个for循环会一直重复执行,直到指定的循环条件为false.         for(初始化数据;判断条件语句;控制条件语句){        循环体语句;}
        • do...while语句:语句一直重复直到指定条件求值得到假值(false)。基本格式:do{循环体语句;}while(条件判断语句);
        • while语句:一个 while语句只要指定的条件求值为真(true)就会一直执行它的语句块。   基本格式:while(条件判断语句){循环体语句;    条件控制语句;}
        • label语句:一个 label提供了一个让你在程序中其他位置引用它的标识符。
        • break语句:用来终止循环,switch,或者是链接到lable语句。
        • 其中使用带lable的break时,它会终止指定的带标记(lable)的语句;
        • 使用不带lable的break时,它会终止当前所在的循环,并把控制权交回给这些结构后面的语句。
        • continue语句:用来执行(跳过代码块剩余部分并进入下一个循环)一个while、do...while、for或者label语句
        • for...in语句:循环一个指定的变量来循环一个对象所有可枚举的属性,javaScript会为每一个不同的属性执行指定的语句。
        • for...of语句:在可迭代对象上创建一个循环,对值得每一个独特属性调用一次迭代。
      • 链表继承了AbstractSequentialList 类(AbstractSequentialList继承自AbstractList,是LinkedList的父类);
      • 链表实现了 Queue 接口,可作为队列使用(Queue 是java中实现队列的接口)。
      • 链表 实现了 List 接口,可进行列表的相关操作。
      • 链表实现了 Deque 接口(双向队列:支持插入删除元素的线性集合。),可作为队列使用。
      • 链表 实现了 Cloneable 接口(标记型接口,里面没有任何方法和属性),可实现克隆。
      • 链表 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。
      • 链表类位于java.util包中,使用前需要引入它,如:
      • import java.util.LinkedList;

      • 创建一个简单的链表实例://引入LinkedList类         
      •     LinkedList<String > sites =new LinkedList<String>();

      • 在列表开头添加元素://使用addFirst()在头部添加元素,Wiki是添加的自定义的名称         
         sites.addFirst("Wiki");

      • 在列表结尾添加元素://使用addLast()在尾部添加元素     
          sites.addLast("Wiki");

      • 在列表开头移除元素://使用removeFirst()移除头部元素           
        sites.removeFirst();

      • 在列表结尾移除元素://使用removeLast()移除尾部元素     
        sites.removeLast();

      • 获取列表开头或者结尾处的元素://使用getFirst()getLast();
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值