东莞网络建站,禅城区企业网站建设,刷赞网站推广免费软件,陕西企业营销型网站随机产生10个100以内的整数建立一个顺序栈#xff0c;从栈顶到栈底依次显示栈内元素#xff1b;从键盘输入出栈元素个数 n (1 n 10)#xff0c;将 n 个元素依次出栈并显示出栈元素#xff0c;再显示此时栈顶元素。
#include iostream
#include cstd…随机产生10个100以内的整数建立一个顺序栈从栈顶到栈底依次显示栈内元素从键盘输入出栈元素个数 n (1 n 10)将 n 个元素依次出栈并显示出栈元素再显示此时栈顶元素。
#include iostream
#include cstdlib
#include ctime
using namespace std;
const int StackSize 100;
template typename DataType
class SeqStack {
public:SeqStack() : top(-1) {} // 构造函数初始化栈顶为-1 DataType data[StackSize];int top;void Push(DataType x);DataType pop();int Empty();void GenerateAndPushRandomNumbers(); // 生成随机数并压入栈 void PopAndDisplay(int n); // 出栈并显示n个元素 void DisplayTop(); // 显示栈顶元素
};
template typename DataType
void SeqStackDataType::Push(DataType x) {if (top StackSize - 1) throw Overflow;data[top] x;
}
template typename DataType
DataType SeqStackDataType::pop() {if (top -1) throw 下溢;return data[top--];
}
template typename DataType
int SeqStackDataType::Empty() {return top -1;
}
template typename DataType
void SeqStackDataType::GenerateAndPushRandomNumbers() {srand(time(nullptr)); // 初始化随机数种子 for (int i 0; i 10; i) {int randomNumber rand() % 100; // 生成0到99的随机数 Push(randomNumber);}
}
template typename DataType
void SeqStackDataType::PopAndDisplay(int n) {for (int i 0; i n; i) {DataType poppedElement pop();cout Popped element: poppedElement endl;}
}
template typename DataType
void SeqStackDataType::DisplayTop() {if (!Empty()) {cout Top element: data[top] endl;}else {cout Stack is empty. endl;}
}
int main() {SeqStackint stack;stack.GenerateAndPushRandomNumbers(); // 生成随机数并压入栈 // 显示栈内元素 cout Elements in the stack (from top to bottom):;for (int i stack.top; i 0; --i) {cout stack.data[i];}cout endl;int n;cout Enter the number of elements to pop (1-10): ;cin n;stack.PopAndDisplay(n); // 出栈并显示元素 stack.DisplayTop(); // 显示栈顶元素 return 0;
}