The using of stack

#include "header.c"
typedef char SElemType;
#include "LinkStack.c"

//conversion decimal to octal
void conversion(){
	LinkStack S;
	int N,e;
	InitStack(&S);
	printf("Enter a decimal : ");
	scanf("%d",&N);
	printf("The decimal you entered is :%d\n",N);
	while(N){
		printf("Push %d in stack s\n",N%8);
		Push(S,N%8);
		N = N/8;
		printf("Now N is %d\n",N);
	}
	printf("The decimal you entered conversion to octal is : ");
	while(! StackEmpty(S)){
		Pop(S,&e);
		printf("%d " , e);
	}
}
//line edit
void LineEdit(){
	LinkStack S,TS;
	char ch , c;
	InitStack(&S);
	InitStack(&TS);
	printf("Enter some character (#:back @:clear ):\n");
	ch = getchar();
	while(ch != EOF){
		while(ch != EOF && ch != '\n'){
			switch(ch){
				case '#':{
					Pop(S,&c);
					break;
				}
				case '@':{
					ClearStack(S);
					break;
				}
				default:{
					Push(S,ch);
					break;
				}
			}
			ch = getchar();
		}
		printf("Now the line stack is:");
		while(! StackEmpty(S)){
			Pop(S,&c);
			Push(TS , c);
			printf("%c ",c);
		}
		printf("\n");
		ClearStack(S);
		if(ch != EOF){
			ch = getchar();
		}
	}
	printf("The total Stack is:\n");
	while(! StackEmpty(TS)){
		Pop(TS,&c);
		printf("%c ",c);
	}
	DestroyStack(&S);
}



void main(){
	//when test one function , commond the rest function 
	//and change the define type define of SElemType
	LineEdit();
	conversion();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值