对链表的简单学习

什么是链表

要存储多个元素,数组可能是最常用的数据结构。这种数据结构非常方便,但是有一个缺点:从数组的起点或者中间插入或移除项的成本非常高,因为需要移动元素(比如你插入一个元素后面的所有的元素都移动了“位置”)。链表存储有序的元素集合,但是不同于数组,链表中的元素在内存中并不是连续放置的每个元素都是由一个存储元素本身的节点和一个指向下一元素的引用(也叫指针或者链接)组成。相比于数组来说,链表的好处在于添加或者删除元素的时候不需要移动其他元素。但是操作链表需要使用指针。数组的一个优点是可以直接访问任何位置的任何元素,但是要是想访问链表中的某一元素,则是必须从起点开始迭代直到找到目标元素。

1、创建链表

function linkedList(){//声明一个函数,此为存储链表的一个构造函数
	var Node=function(element){//声明一个Node为私有变量,只有构造函数内的方法才能访问到
		this.element=element;
		this.next=null;
	}
	this.append=function(element){//构造函数模式实现的特权方法,只能是linkedList的实例可以访问
		var node=new Node(element);
		var current;
		if(head==null){//如果为空链表
			head=node;//设置head为node(列表的下一个节点的下一个元素始终为null)
		}else{
			current=head;//如果链表不为空,向链表得结尾处插入节点。
			while(current.next){//如果链表的节点不止一个
			    current=current.next;//迭代查询下一个节点的下一个指针
			}
			current.next=node;//为当前节点的next属性,赋值为下一个节点的地址
		}
		length++;//链表长度加一
	}
};
var list=new linkedList();//创建一个空链表
list.append(15);//向链表中添加一个节点
list.append(10);//调用append方法向链表的结尾再添加一个节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值