用js可以用array对象很容易的实现栈的功能,但在vbs中没有相应的功能,没办法,只有自己动手了:( 如果你的栈不了解请查看数据结构的相关内容。这个栈类是参照c++的栈类写的,用法一样。用这个类你也可以很方便的修改出队列的类:) <% '********************************************** ' vbs栈类 ' push(string)进栈 ' getTop取栈顶元素 ' pop去掉栈顶元素 ' isempty是否栈空 ' isfull是否栈满(pMax设置了大小,可自行修改) ' ' 木鸟 2002.10.10 ' http://www.aspsky.net/ '********************************************** class Stack private pArr, pString, pMax private tab private sub class_initialize() tab=chr(9) pMax=1000 '最大容量 end sub private sub class_terminate() if isarray(pArr) then erase pArr end if end sub
public function push(str) if str<>"" and instr(str,tab)<1 and not Isfull then if isarray(pArr) then pString=join(pArr,tab) end if pString=pString & tab & str pArr=split(pString,tab) push=true else push=false end if end function
public function GetTop() if not isarray(pArr)<0 then GetTop=null else if ubound(pArr)<0 then GetTop=null else GetTop=pArr(Ubound(pArr)) end if end if end function
public function Pop() if not isArray(pArr) then Pop=false else if Ubound(pArr)<0 then Pop=false else pString=join(pArr,tab) pString=left(pString,inStrRev(pString,tab)-1) pArr=split(pString,tab) Pop=true end if end if end function
public function Isempty() if not isArray(pArr) then Isempty=true else if Ubound(pArr)<0 then isempty=true else isempty=false end if end if end function
public function Isfull() if not isArray(pArr) then Isfull=false else if ubound(pArr)<pMax then Isfull=false else Isfull=true end if end if end function end class %>
|