以下是使用C++编写的栈和冒泡排序的示例代码:
#include <iostream>
#include <stack>
using namespace std;
// 栈结构定义
class Stack {
private:
int arr[100]; // 假设最大容量为100
int top; // 栈顶指针
public:
Stack() {
top = -1; // 初始化栈顶指针为-1,表示空栈
}
void push(int data) {
if (top == 99) {
cout << "Stack Overflow" << endl;
return;
}
arr[++top] = data; // 将元素压入栈顶并更新指针
}
void pop() {
if (top == -1) {
cout << "Stack Underflow" << endl;
return;
}
top--; // 弹出栈顶元素,更新指针
}
int peek() {
if (top == -1) {
cout << "Stack is empty" << endl;
return -1;
}
return arr[top]; // 返回栈顶元素的值
}
bool isEmpty() {
return (top == -1); // 判断栈是否为空
}
};
// 冒泡排序函数定义
void bubbleSort(int arr[], int n) {
for(int i = 0; i < n-1; i++) {
for(int j = 0; j < n-i-1; j++) {
if(arr[j] > arr[j+1]) { // 如果前一个元素大于后一个元素,交换它们的位置
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
// 栈的使用示例
Stack s;
s.push(10);
s.push(20);
s.push(30);
cout << "Stack top element: " << s.peek() << endl;
s.pop();
cout << "Stack top element after pop: " << s.peek() << endl;
if (s.isEmpty()) {
cout << "Stack is empty" << endl;
} else {
cout << "Stack is not empty" << endl;
}
// 冒泡排序的使用示例
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout<<"Sorted array: ";
for(int i=0; i < n; i++)
cout<<arr[i]<<" ";
return 0;
}
请注意,这只是基本的示例代码,你可以根据自己的需求进行扩展和修改。
内容由零声教学AI助手提供,问题来源于学员提问