⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 栈作业(徐何).cpp

📁 this a map to you updata myself
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define FALSE 0
#define TRUE 1
#define M 2

typedef struct
{
	int Stack[M];
	int top;
}DqStack;

void InitStack(DqStack *S);
int push(DqStack *S,int x);
int Pop(DqStack *S,int *x);
int GetTop(DqStack *S,int *x);

int i,x;

void main()
{
	DqStack S;
	int c,z;
	int flag;
	InitStack(&S);
	do{
		printf("初始化请按1\n");
		printf("进栈操作请按2\n");
		printf("出栈操作请按3\n");	
		printf("取栈顶元素请按4\n");
		printf("退出请按5\n");		
		scanf("%d",&c);
		putchar('\n');
		switch(c)
		{
			case 1:
				InitStack(&S);
				break;
			case 2:				
				printf("请输入要进栈的元素x:");
				scanf("%d",&x);
				flag=push(&S,x);
				if(!flag)
					printf("********* error,入栈失败,栈已满");
				putchar('\n');
				break;
			case 3:
				flag=Pop(&S,&z);
				if(flag)
					printf("出栈的元素为:%d",z);
				else
					printf("********* error,栈已空");
				putchar('\n');
				putchar('\n');
				break;
			case 4:
				flag=GetTop(&S,&z);
				if(flag)
					printf("栈顶的元素为:%d",z);
				else
					printf("********* error,栈已空");
			default: 
				putchar('\n');
				putchar('\n');
				break;
		}
	
	}while(c!=5); 	
	printf("*\n");
}


void InitStack(DqStack *S)
//初始化栈
{
	S->top=-1;
}


int push(DqStack *S,int x)
//进栈操作
{
	if(S->top==M-1)//判断是否栈满
		return(FALSE);
	S->top++;
	S->Stack[S->top]=x;
	return(TRUE);
}

int Pop(DqStack *S,int *x)
//出栈操作
{
	if(S->top==-1) //判断是否栈空
		return(FALSE);
	*x=S->Stack[S->top];
	S->top--;
	return(TRUE);
}

int GetTop(DqStack *S,int *x)
//取栈顶元素
{
		if(S->top==-1)
			return(FALSE);
		*x=S->Stack[S->top];
		return(TRUE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -