建立一个栈,实现压栈、取栈顶元素、出栈操作。 2. 建立一个队列,实现入队、出队、求队列长度操作。c++
时间: 2023-07-10 20:12:12 浏览: 87
好的,我可以帮你解答这两个问题。
1. 建立一个栈,实现压栈、取栈顶元素、出栈操作。
栈是一种后进先出(LIFO)的数据结构,可以通过数组或链表来实现。以下是使用数组实现的栈:
```c++
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 定义栈的最大容量
class Stack {
private:
int data[MAX_SIZE]; // 栈的数据存储区
int top; // 栈顶指针,初始值为-1
public:
Stack() { top = -1; } // 构造函数,初始化栈顶指针为-1
bool isEmpty() { return top == -1; } // 判断栈是否为空
bool isFull() { return top == MAX_SIZE - 1; } // 判断栈是否已满
void push(int x) { // 入栈操作
if (isFull()) {
cout << "Stack overflow!" << endl;
return;
}
data[++top] = x;
}
int pop() { // 出栈操作
if (isEmpty()) {
cout << "Stack underflow!" << endl;
return -1;
}
return data[top--];
}
int peek() { // 查看栈顶元素
if (isEmpty()) {
cout << "Stack is empty!" << endl;
return -1;
}
return data[top];
}
};
int main() {
Stack s;
s.push(1);
s.push(2);
s.push(3);
cout << s.pop() << endl; // 3
cout << s.peek() << endl; // 2
cout << s.pop() << endl; // 2
cout << s.pop() << endl; // 1
cout << s.pop() << endl; // 栈已空,输出提示信息并返回-1
return 0;
}
```
2. 建立一个队列,实现入队、出队、求队列长度操作。
队列是一种先进先出(FIFO)的数据结构,同样可以通过数组或链表来实现。以下是使用数组实现的队列:
```c++
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 定义队列的最大容量
class Queue {
private:
int data[MAX_SIZE]; // 队列的数据存储区
int front, rear; // 队首指针和队尾指针,初始值都为0
public:
Queue() { front = rear = 0; } // 构造函数,初始化队首指针和队尾指针为0
bool isEmpty() { return front == rear; } // 判断队列是否为空
bool isFull() { return rear == MAX_SIZE; } // 判断队列是否已满
int size() { return rear - front; } // 求队列长度
void enqueue(int x) { // 入队操作
if (isFull()) {
cout << "Queue overflow!" << endl;
return;
}
data[rear++] = x;
}
int dequeue() { // 出队操作
if (isEmpty()) {
cout << "Queue underflow!" << endl;
return -1;
}
return data[front++];
}
};
int main() {
Queue q;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
cout << q.dequeue() << endl; // 1
cout << q.size() << endl; // 2
cout << q.dequeue() << endl; // 2
cout << q.dequeue() << endl; // 3
cout << q.dequeue() << endl; // 队列已空,输出提示信息并返回-1
return 0;
}
```
希望这两个示例能够帮助你理解栈和队列的基本操作。如果还有疑问,请随时提出。
阅读全文