如何使用c++编写整数单链表的基本运算程序
时间: 2024-09-15 09:08:39 浏览: 36
利用单链表实现多项式基本运算(C++模板实现)
在C++中,我们可以创建一个简单的整数单链表数据结构,并实现一些基本的运算,如插入、删除和遍历。以下是基本步骤:
首先,定义一个节点结构体,包含整数值和指向下一个节点的指针:
```cpp
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {} // 构造函数
};
```
接下来,我们实现单链表的基本操作:
1. **创建链表**:
```cpp
ListNode* createList(vector<int>& nums) {
if (nums.empty()) return nullptr;
ListNode* head = new ListNode(nums[0]);
ListNode* curr = head;
for (int i = 1; i < nums.size(); ++i) {
curr->next = new ListNode(nums[i]);
curr = curr->next;
}
return head;
}
```
2. **添加元素(插入)**:
```cpp
void insertAtEnd(ListNode*& head, int val) {
if (!head) {
head = new ListNode(val);
return;
}
ListNode* curr = head;
while (curr->next) {
curr = curr->next;
}
curr->next = new ListNode(val);
}
```
3. **删除元素(指定位置删除)**:
```cpp
void deleteNode(ListNode*& head, int position) {
if (!head || position <= 0) return;
ListNode* temp = head;
if (position == 1) {
head = head->next;
delete temp;
return;
}
for (int i = 1; i < position - 1 && temp->next; ++i) {
temp = temp->next;
}
if (temp && temp->next) {
ListNode* toDelete = temp->next;
temp->next = temp->next->next;
delete toDelete;
}
}
```
4. **遍历并打印链表**:
```cpp
void printList(ListNode* head) {
ListNode* curr = head;
while (curr) {
cout << curr->val << " ";
curr = curr->next;
}
cout << endl;
}
```
现在你可以组合这些函数来完成你的操作。例如,创建链表后可以插入新的元素,然后删除指定位置的元素并打印结果。
阅读全文