数据结构c++菜鸟级超简单增资算法代码(一个顺序表,一个单链表),超级超级超级简单那种
时间: 2024-09-21 17:12:49 浏览: 60
数据结构中的增删操作对于初学者来说确实很重要。这里我会分别提供顺序表(数组)和单链表的简单插入(即增资)代码示例。
**顺序表(数组)的例子:**
```cpp
#include <iostream>
// 定义一个简单的整数顺序表
class ArrayList {
private:
int* data;
size_t capacity;
size_t size;
public:
ArrayList(size_t cap) : data(new int[cap]), capacity(cap), size(0) {}
// 在表尾插入元素
void insert(int value) {
if (size == capacity) {
// 如果满了,需要扩容
resize(capacity * 2); // 假设每次翻倍容量
}
data[size++] = value; // 插入新值
}
// 其他辅助函数...
private:
// 扩容操作,实际项目中可以优化
void resize(size_t new_cap) {
int* newData = new int[new_cap];
for (size_t i = 0; i < size; ++i) {
newData[i] = data[i];
}
delete[] data;
data = newData;
capacity = new_cap;
}
};
int main() {
ArrayList list(5);
list.insert(10);
list.insert(20);
return 0;
}
```
**单链表的例子:**
```cpp
#include <iostream>
struct Node {
int data;
Node* next;
};
class LinkedList {
private:
Node* head;
public:
LinkedList() : head(nullptr) {}
// 在链表尾部插入元素
void insert(int value) {
Node* newNode = new Node{value, nullptr};
if (!head) {
head = newNode;
} else {
Node* current = head;
while (current->next) {
current = current->next;
}
current->next = newNode;
}
}
// 其他辅助函数...
};
int main() {
LinkedList list;
list.insert(10);
list.insert(20);
return 0;
}
```
阅读全文