作者tsaiminghan (nahgnimiast)
看板C_and_CPP
标题Re: [问题] 资料结构-用c语言array写stack,push和 …
时间Thu Apr 9 22:37:56 2009
※ 引述《lovemost (最爱)》之铭言:
: typedef struct STACK
: {
: char item [100];
: int top;
: }STACK;
: STACK S;
:
: void push(char );
: void pop(char *);
:
: int main(){
: S.top=0;
: void push(char x){
: S.top++;
: S.item[S.top]=x;
: }
:
: void pop(char *x){
: *x=S.item[S.top];
: S.top--;
: }
我只看了statck的部分
假设top永远指向空白位置。
S.top = 0;
void push(char x)
{
S.item[S.top++] = x;
}
void pop(char *x)
{
*x = S.item[--S.top];
}
其实以前写作业的时候,会加个
isFull 和 isEmpty的检查。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.217.111.110
1F:推 lovemost:恩...书上是有这麽说~@@"~不过我在想应该加一个if就好 04/09 22:45
2F:→ lovemost:if (S.top >= 0){S.item[S.top++]=x;} 04/09 22:45
3F:→ lovemost:补上试试看.. 04/09 22:46
4F:→ tsaiminghan:对。只是加个if判断而已 04/09 22:47
5F:→ sunneo:不是加了就好= = 04/09 22:47
6F:→ sunneo:push该判断的是ifFull, pop该判断的是ifEmpty 04/09 22:48
7F:→ sunneo:S.top >= 0加在 push是恒成立的 04/09 22:48
8F:→ sunneo:除非S.top overflow 04/09 22:48
9F:→ tsaiminghan:啊,没注意到二楼写的判断是错的… 04/09 22:49
10F:→ sunneo:sorry楼上 我不是针对你回应的 ^^" 04/09 22:50
11F:→ tsaiminghan:了解 ^^ll 04/09 22:52
12F:推 lovemost:刚又试了好一阵子><"~请问是否要让出记忆体空间给程式 04/09 23:17
13F:→ lovemost:目前参数少可以做,可是参数一多就会直接跳掉... 04/09 23:17
14F:→ tsaiminghan:有错误讯息吗? 04/09 23:19
15F:→ tsaiminghan:另外如果用vs2005的话,可以设中断点,对debug很方便 04/09 23:22