示例#1
0
main()
{
	struct SqStack *q;
	int i,y,cord;ElemType a;
	void OutStack(struct SqStack S);
	void InitStack(struct SqStack *p);
	void Push(struct SqStack *p,ElemType x);
	ElemType Pop(struct SqStack *p);
	ElemType GetTop(struct SqStack *p);
	do{
		printf("\n");
		printf("\n           主菜单          \n");
		printf("\n     1     初始化顺序栈    \n");
		printf("\n     2     插入一个元素    \n");
		printf("\n     3     删除栈顶元素    \n");
		printf("\n     4     取栈顶元素      \n");
		printf("\n     5     结束程序运行    \n");
		printf("\n--------------------------------\n");
		printf("请输入您的选择( 1, 2, 3, 4, 5)");
		scanf("%d",&cord);
		switch(cord)
		{
			case 1:
				{
					q=(struct SqStack*)malloc(sizeof(struct SqStack));
					InitStack(q);
					OutStack(q);
				}break;
			case 2:
				{
					printf("请输入要插入的数据 a=");
					scanf("%d",&a);
					Push(q,a);
					OutStack(q);
				}break;
			case 3:
				{
					Pop(q);
					OutStack(q);
				}break;
			case 4:
				{
					y=GetTop(q);
					printf("\ny=%d\n",y);
					OutStack(q);
				}break;
			case 5:
				exit(0);
		}
	}while (cord<=5);
}
示例#2
0
/* Libera pilha da memoria. */
void DestroyStack(Stack* St){
  
  while(NotNullStack(St)){
    OutStack(St);
  }
  
  free(St);
}
示例#3
0
/* Template de impressão de dados */
void PrintOutput(int nRoomsBefore, Stack** RoomSizes, int nRoomsAfter, int deadBlocks){
  
  int i;
  
  printf("%d\n", nRoomsBefore);
  
  for(i=0; i<nRoomsBefore; i++){
    printf("%d", OutStack(RoomSizes));
    
    if(i+1<nRoomsBefore){
      printf(" ");
    }
  }
  
  printf("\n%d\n", nRoomsAfter);
  printf("%d\n", deadBlocks);  
}