ITPub博客

首页 > 数据库 > 数据库开发技术 > 双向链表&&堆栈 (转)

双向链表&&堆栈 (转)

原创 数据库开发技术 作者:worldblog 时间:2007-12-14 08:26:27 0 删除 编辑
双向链表&&堆栈 (转)[@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/10752043/viewspace-993104/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2405826