《算法導論》資料結構那一章節的練習。
方法一:
使用靜态數組
#include<stdio.h>
int SS[10];//定義一個數組作為stack
int top=0;//定義stack的指針
bool STACK_EMPTY()//判斷stack是否為空
{
if(top==0)
return true;
else
return false;
}
void PUSH(int *S,int x)//入棧操作
top=top+1;
S[top]=x;
int POP(int *S)//出棧操作
if(STACK_EMPTY())//如果棧為空,則傳回-1
return -1;
else//如果棧不為空,則指針向前退1,傳回目前指針所指向的元素
top=top-1;
return S[top+1];
void main()
//連續壓棧,将1,2,3,4,5一次存入棧中。
PUSH(SS,1);
PUSH(SS,2);
PUSH(SS,3);
PUSH(SS,4);
PUSH(SS,5);
while(top!=0)//如果棧不為空,則執行出棧操作,并輸出出棧的元素。
{
int p=POP(SS);
printf("%d/n",p);
}
方法二:
通過傳遞數組的引用實作
bool STACK_EMPTY(int &top)
void PUSH(int *S,int x,int &top)
int POP(int *S,int &top)
if(STACK_EMPTY(top))
int SS[10];
int top=0;
PUSH(SS,1,top);
PUSH(SS,2,top);
PUSH(SS,3,top);
PUSH(SS,4,top);
PUSH(SS,5,top);
while(top!=0)
int p=POP(SS,top);
// printf("hello world!/n");
本文轉自xwdreamer部落格園部落格,原文連結:http://www.cnblogs.com/xwdreamer/archive/2011/01/03/2297052.html,如需轉載請自行聯系原作者