单链表初识
链表是由一组节点组合成的集合.每个节点都使用一个对象的引用指向它的后继,指向另一个节点的引用叫做链
数组元素靠他们的位置进行引用,链表元素则是靠相互之间的关系进行引用,在下图中bread跟在milk后面而不是说bread是链表中的第二个元素。
而遍历链表,则是跟着首元素一直遍历至尾元素。由图可知尾元素指向一个null元素。
为了更好的标志处链表的起始节点,我们在前面设置一个特殊节点,叫做头节点
插入节点:在链表中插入一个节点效果非常的高,需要修改其前面的节点,使指针指向新节点
删除节点:删除节点即是将待删除元素的前驱节点指向待删除元素的后继节点。
单链表代码实现
Node类实现
//Node类用来设置链表的节点相关信息
// 1 本节点信息 2 指向下一个节点的指针
function Node(ele){
this.element=ele;
this.next=null;
}
Llist类实现
Llist类实现的是一些对链表进行操作的方法,包括插入、删除节点、查找节点等。
插入节点
//Llist类的实现
function Llist(){
this.head=new Node("head");
}
//添加方法
Llist.prototype={
find:function(ele){
var curNode=this.head//从头节点开始遍历
while(curNode.element!=ele){
curNode=curNode.next;
}
return curNode;//返回找到的节点 若是没有找到则返回的是null
},
insert:function(newEle,ele){//插入节点
var newNode=new Node(newEle);
var curNode=this.find(ele);
newNode.next=curNode.next;
curNode.next=newNode;
},
display:function(){//遍历显示节点信息
var curNode=this.head;
while(curNode.next!=null){
console.log(curNode.next.element);//只显示有数据的节点
curNode=curNode.next;
}
}
}
测试
//测试
var citys=new Llist();
citys.insert('赣州','head');
citys.insert('江西','赣州');
citys.insert('南昌','江西');
citys.display();
明天开始校招,先写到这里^+^
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。