栈:栈是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
结构:由栈顶,栈低以及元素组成。
方法:压入和删除。
特征:只能从栈顶操作,遵循先进后出原则。
实现方法:通过数组或者链表方式。
链表方式:元素由元素内容和指向下一节点组成。
依据链表元素特性新建一个由元素和指向下一节点组成的数据类型。
function node(element) {
this.element=element;
this.next=null;
}
依据栈特性新建一个私有变量为head 和length以及方法为apush和apopd的方法。
function list() {
this.head=null;
this.length=null;
this.apush=apush;
this.apop=apop;
}
压入方法:
function apush(node) {
var a=this.head;
if(a){
// this.head.next=node;
// this.head=node;
node.next=this.head;
this.head=node;
}else {
this.head=node;
}
this.length+=1;
}
删除方法:
function apop(node) {
// this.head=this.head.next;
// this.length-=1;
var a=this.head;
if(a){
if(a==node){
this.head=this.head.next;
this.length-=1;
}else {
return false;
}
}else {
return 'a null list';
}
}
测试:

网友评论