双向链表&&堆栈 (转)

双向链表&&堆栈 (转)[@more@]


 /*--------------双向链表&&堆栈--------------*/
 function LinkList(){
 var oList,oLength,oResult;
 this.Append = dListAppend;
 this.Length = dListLength;
 this.GetAt = dListGetAt;
 this.SetAt = dListSetAt;
 this.DeleteAt = dListDeleteAt;
 this.InsertAt = dListInsertAt;
 this.GetHead = dListGetHead;
 this.GetTail = dListGetTail;
 this.ClearAll = dInitLinkList;
 this.Version = dListVersion;

 this.Push
 this.Pop

 dInitLinkList();
 }
 function LinkListData(){
 this.data = null;
 this.next = null;
   this.prev = null;
 }
 function dListVersion(bBool){
    if(bBool){
 alert(oList.data);
 }
    return oList.data;
 }
 function dInitLinkList(){
 var ver = "双向链表1.0版nn作者:卢印刚nn2002.9.3nn版权所有"
 oList  = new LinkListData();
 oList.data = ver;
 oList.prev = oList;
 oList.next = oList;
 oLength = -1;
 }
 function dListAppend(m){
 var temp = oList.prev;
 temp.next = new LinkListData();
 temp.next.data = m;
 temp.next.prev = temp;
 temp.next.next = oList;
 oList.prev = temp.next;
 oLength += 1;
 oResult = m;
 return oResult;
 }
 function dListLength(){
 return oLength;
 }
 function dListGetHead(){
 return oList.next.data;
 }
 function dListGetTail(){
 return oList.prev.data;
 }
 function dListGetPosition(d,i){
 var pos = 0;
 if(i while(pos<=i){
 d = d.next;
 pos+=1;
 }
 return d;
 }else{
 pos = oLength;
 while(pos>=i){
 d = d.prev;
 pos-=1;
 }
 return d;
 }
 }
 function dListGetAt(i){
 if(i>oLength){
 i=oLength;
 }
 var temp = oList;
 temp = dListGetPosition(temp,i);
 oResult = temp.data;
 return oResult;
 }
 function dListSetAt(i,m){
 if(i>oLength){
 i=oLength;
 }
 var temp = oList;
 temp = dListGetPosition(temp,i);
 temp.data = m;
 oResult = temp.data;
 return oResult;
 }
 function dListDeleteAt(i){
 if(i>oLength){
 i=oLength;
 }
 var temp = oList;
 temp = dListGetPosition(temp,i);
 temp.prev.next = temp.next;
 oResult = temp.data;
 delete temp;
 oLength-=1;
 return oResult;
 }
 function dListInsertAt(i,m){
 if(i>oLength){
 i=oLength;
 }
 var temp = oList;
 temp = dListGetPosition(temp,i-1);
 var d = new LinkListData();
 d.data = m;
 d.prev = temp;
 d.next = temp.next;
 temp.next.prev = d;
 temp.next = d;
 oLength+=1;
 oResult = m;
 return oResult;
 }
 /*--------------双向链表&&堆栈--------------*/



/*------------------应用--------------------*/
var list = new LinkList();
var temp = new Array("king","love","you","me","hello");
for(var i=0;i  list.Append(temp[i]);
}
list.InsertAt(2,"fuck");
alert(list.GetAt(2))
list.DeleteAt(2)

alert(list.GetAt(2))


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-976519/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-976519/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值