|
数据结构的问题相当重要,如果你能描述出一个问题的输入和输出数据结构,那么这个问题就大有希望,数据结构并不是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
|