感觉自己数据结构学的好慢啊。
感觉用不惯C++的输入输出,其实看我胡扯不如直接去看代码来的实在。
堆栈的在于查看是否满(溢出),或者为空(NULL)
上代码:
//
// main.cpp
// 数组实现堆栈
//
// Created by MaLker on 2017/3/20.
// Copyright © 2017年 MaLker. All rights reserved.
//
#include <iostream>
//#include <algorithm>
#include <string.h>
#define Max_Size 1000
#define OK true
#define NO false
using namespace std;
int Stk[Max_Size],Now_Sit,Max_Lenth;
bool Creat_Stak(void){//1r 创造一数组,来模拟堆栈
cout<<"Please enter the max lenth :";
cin>>Max_Lenth;
Now_Sit=0;
return OK;
}
bool Pop(void){//2o 从栈的顶端拿出
if (Now_Sit==0) {
cout<<"You do not have anything in the Stack\n";
return NO;
}
//printf("%d\n",Stk[Now_Sit-1]);
Now_Sit--;
return OK;
}
bool Push(void){//3u压入一个数字
if (Now_Sit==Max_Lenth) {
cout<<"Your Stack is full!!\n";
return NO;
}
printf("Please input you want push number :");
scanf("%d",&Stk[Now_Sit]);
Now_Sit++;
return OK;
}
bool Peak(void){//4e输出顶端
if (Now_Sit==0) {
cout<<"You do not have anything in the Stack\n";
return NO;
}
printf("%d\n",Stk[Now_Sit-1]);
Now_Sit--;
return OK;
}
void Operat(void){
printf("**************** Welcome ********************\n");
while (OK) {
printf("Please input Operatin :");
char Operat_Signal[Max_Size];
scanf("%s",Operat_Signal);
getchar();
int Oper_Sgnl=0;
if (Operat_Signal[1]=='R'||Operat_Signal[1]=='r') {
Oper_Sgnl=1;
}
else if (Operat_Signal[1]=='O'||Operat_Signal[1]=='o')
Oper_Sgnl=2;
else if (Operat_Signal[1]=='U'||Operat_Signal[1]=='u')
Oper_Sgnl=3;
else if (Operat_Signal[1]=='E'||Operat_Signal[1]=='E')
Oper_Sgnl=4;
else
Oper_Sgnl=0;
int IsOK=0;
switch (Oper_Sgnl) {
case 1:
IsOK=Creat_Stak();
break;
case 2:
IsOK=Pop();
break;
case 3:
Push();
break;
case 4:
Peak();
break;
default:
return ;
break;
}
if (IsOK) {
printf("%s SUCCESS!!!\n",Operat_Signal);
}
else{
printf("%s FALSE!!!\n",Operat_Signal);
}
}
}
int main(int argc, const char * argv[]) {
Operat();
return 0;
}
/* Creat
bool Push ( const T& item ) ; // 向栈顶压入一个元素
bool Pop ( T & item ) ; // 从栈顶弹出一个元素
bool Peek ( T & item ) const ; // 存取栈顶元素
int IsEmpty ( void ) const { return top = = -1 ; }
// 检测栈是否为空
int IsFull ( void ) const { return top size-1 ; }
// 检测栈是否为满
void clear ( void ) { top-1 ; } // 清空栈
} ;*/