stacks.c

来自「北大青鸟软件工程师ppt的学生用书源代码」· C语言 代码 · 共 68 行

C
68
字号
#include<stdio.h>
#define m 100

struct Mystack
{
	char element[m];
  	int top;
};

void push(struct Mystack *s,char x) /*将x的值压入栈顶*/
{
 	s->element[s->top]=x;
	s->top++;
}
int IsEmpty(struct Mystack *s)//判断栈是否为空
{
	if(s->top==0)
		return 1;
	else
		return 0;
}
void pop(struct Mystack *s)	/*出栈操作,将栈顶元素删除*/
{
 	s->top--;	
}
void Displaystack(struct Mystack *s)//显示从栈底到栈顶所有的元素
{
	int i;
	for(i=0;i<s->top;i++)
	  printf("%c",s->element[i]);
}
void Clearstack(struct Mystack *s)//将栈清空
{
	s->top=0;
}

void main()
{
    struct Mystack st;
	char ch;
    int i;
	for(i=0;i<100;i++)
		st.element[i]='\0';
	st.top=0;
    printf("请输入一行字符:\n");
	ch=getchar();
	while(ch!=EOF && ch!='\n')
	{
		switch(ch)
		{
			case '#': 
				if(!IsEmpty(&st))
					pop(&st);
				break;
			case '@':
				Clearstack(&st);
				break;
			default: 
				push(&st,ch);
		}
		ch=getchar();
	}
    printf("有效字符为:\n");
	Displaystack(&st);
	printf("\n");
}

⌨️ 快捷键说明

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