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();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章