数据结构 c++plus实现
时间: 2023-11-26 13:02:48 浏览: 43
下面是一些常见的数据结构,以及它们在 C++ 中的实现:
1. 数组
C++ 中的数组是一组相同类型的元素的集合,可以通过下标来访问数组中的元素。下面是一个创建和初始化数组的示例:
```cpp
int arr[5]; // 声明一个包含5个整数的数组
arr[0] = 1; // 设置第一个元素为1
arr[1] = 2; // 设置第二个元素为2
arr[2] = 3; // 设置第三个元素为3
arr[3] = 4; // 设置第四个元素为4
arr[4] = 5; // 设置第五个元素为5
```
2. 链表
链表是一种动态数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。下面是一个简单的链表实现:
```cpp
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
// 创建一个链表,并添加一些元素
ListNode* head = new ListNode(1);
ListNode* second = new ListNode(2);
ListNode* third = new ListNode(3);
head->next = second;
second->next = third;
```
3. 栈
栈是一种后进先出(LIFO)的数据结构,它支持两个基本操作:push(将元素压入栈顶)和pop(将栈顶元素弹出)。下面是一个简单的栈实现:
```cpp
class Stack {
public:
Stack() {}
void push(int x) {
st.push(x);
}
void pop() {
st.pop();
}
int top() {
return st.top();
}
bool empty() {
return st.empty();
}
private:
std::stack<int> st;
};
// 创建一个栈,并添加一些元素
Stack s;
s.push(1);
s.push(2);
s.push(3);
s.pop(); // 弹出栈顶元素
```
4. 队列
队列是一种先进先出(FIFO)的数据结构,它支持两个基本操作:enqueue(将元素插入队尾)和dequeue(将队头元素弹出)。下面是一个简单的队列实现:
```cpp
class Queue {
public:
Queue() {}
void enqueue(int x) {
q.push(x);
}
void dequeue() {
q.pop();
}
int front() {
return q.front();
}
bool empty() {
return q.empty();
}
private:
std::queue<int> q;
};
// 创建一个队列,并添加一些元素
Queue q;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.dequeue(); // 弹出队头元素
```
5. 堆
堆是一种完全二叉树,它满足堆属性:对于每个节点 x,其父节点的值小于或等于 x 的值(最大堆)或大于或等于 x 的值(最小堆)。在 C++ 中,可以使用 priority_queue 类来实现堆:
```cpp
class Heap {
public:
Heap() {}
void push(int x) {
pq.push(x);
}
void pop() {
pq.pop();
}
int top() {
return pq.top();
}
bool empty() {
return pq.empty();
}
private:
std::priority_queue<int> pq;
};
// 创建一个最大堆,并添加一些元素
Heap h;
h.push(1);
h.push(3);
h.push(2);
h.pop(); // 弹出堆顶元素
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)