数据结构的问题相当重要,如果你能描述出一个问题的输入和输出数据结构,那么这个问题就大有希望,数据结构并不是C语言的专利,真正的数据结构是伪代码的。下面这个栈类是我以前搜集别人的代码,实际上每当考虑一个程序问题的时候,尤其是复杂的程序,就应该想到,用什么样的数据去描述你的输入和输出。
''********************************************** ''vbs栈类 ''push(string)进栈 ''getTop取栈顶元素 ''pop去掉栈顶元素 ''isempty是否栈空 ''isfull是否栈满(pMax设置了大小,可自行修改) '' ''木鸟2002.10.10 ''http://www.aspsky.net/ ''**********************************************
classStack privatepArr,pString,pMax privatetab privatesubclass_initialize() tab=chr(9) pMax=1000''最大容量 endsub privatesubclass_terminate() ifisarray(pArr)then erasepArr endif endsub
publicfunctionpush(str) ifstr<>""andinstr(str,tab)<1andnotIsfullthen ifisarray(pArr)then pString=join(pArr,tab) endif pString=pString&tab&str pArr=split(pString,tab) push=true else push=false endif endfunction
publicfunctionGetTop() ifnotisarray(pArr)<0then GetTop=null else ifubound(pArr)<0then GetTop=null else GetTop=pArr(Ubound(pArr)) endif endif endfunction
publicfunctionPop() ifnotisArray(pArr)then Pop=false else ifUbound(pArr)<0then Pop=false else pString=join(pArr,tab) pString=left(pString,inStrRev(pString,tab)-1) pArr=split(pString,tab) Pop=true endif endif endfunction
publicfunctionIsempty() ifnotisArray(pArr)then Isempty=true else ifUbound(pArr)<0then isempty=true else isempty=false endif endif endfunction
publicfunctionIsfull() ifnotisArray(pArr)then Isfull=false else ifubound(pArr)<pMaxthen Isfull=false else Isfull=true endif endif endfunction endclass
|