作业要求:
- 整理思维导图
- 使用模板类,实现顺序栈
- 写一个char类型的字符数组,对该数组访问越界时抛出异常,并做处理。
作业1:
作业2:
运行代码:
#include <iostream>
using namespace std;
#define LEN 10
template <typename T>
class Stack{
T arr[LEN];
int len;
int top;
public:
Stack():len(LEN),top(-1){
}
T full();
T empty();
void push_stack(T data);
T get_stack();
void show();
};
template <typename T>
T Stack<T>::full(){
return top==len-1;
}
template <typename T>
T Stack<T>::empty(){
return top==-1;
}
template <typename T>
void Stack<T>::push_stack(T data){
top++;
arr[top]=data;
}
template <typename T>
T Stack<T>::get_stack(){
top--;
return arr[top+1];
}
template <typename T>
void Stack<T>:: show(){
for(int i=0;i<=top;i++){
cout<<arr[i]<<' ';
}
cout<<endl;
}
int main()
{
Stack <int>s1;
if(s1.empty()){
cout<<"空"<<endl;
}
s1.push_stack(1);
s1.push_stack(2);
s1.push_stack(3);
s1.push_stack(4);
s1.push_stack(5);
s1.show();
int a = s1.get_stack();
cout<<a<<endl;
s1.show();
return 0;
}
运行截图:
作业3:
运行代码:
#include <iostream>
using namespace std;
char fun(char arr[],int pos){
string s = arr;
if(pos>=(int)s.length()){
throw int(0);
}
}
int main()
{
char arr[30]="hellochina";
char c=0;
try {
c=fun(arr,10);
} catch (int ret) {
if(ret==0){
cout<<"访问越界"<<endl;
}
}
cout<<c<<endl;
return 0;
}
运行截图: