堆栈stack的基本操作

/*栈的模板可以用数组,单链表,以及stack堆栈来实现 */
/*建议电脑查看*/ 
#include  
#include  /*堆栈*/
using namespace std;
void print( stack a, int n );
void clear( stack b );	/*清空*/ 
int main() 
{
	stack s;	 /*定义一个堆栈类型变量*/ 
	int number;
	int out[5] = { 2,3,5,4,1, }; 
	int index = 0;
	int i, j, k, n;
	
	/* 输入 1 2 3 4 5 判断有没有可能输出是 2 3 5 4 1 */ 
	scanf("%d", &n );	//下一行输入n个元素
	for( i=0; i=5 || s.top() != out[index] )	 
					break;	//不等则终止循环 
			}
		}
	}
	printf("\n");
	if( s.empty() )	//判断堆栈是否为空 
		printf("Yes\n");
	else{
		clear( s ); //清空 
		printf("No\n");
	}

	for( i=0; i<6; i++ )
		s.push( i ); 
	print( s, s.size() );	//遍历输出,自栈顶向下 
	//printf("\n");
	printf("%d\n", s.size() );	//返回并输出元素个数 
	
	return 0;
}

void print( stack a, int n )	//不会改变主函数的堆栈 
{
	int i;
	
	for( i=0; i b )
{
	while( b.size() )
		b.pop();
}

 

你可能感兴趣的:(STL,栈和队列)