请用Dev C++程序编程实现下述操作: 1. 请以“后插法”创建一个数据元素为整数的单链表。 2. 请编写一个print函数输出单链表中的所有整数。 3. 请编写一个Max函数获取单链表中包含的最大整数值。
时间: 2024-10-16 16:06:32 浏览: 29
后插法建立单链表-数据结构 线性表
在Dev C++中,我们可以使用结构体表示链表节点,并结合指针实现后插法来构建单链表。首先,我们需要定义链表节点结构:
```cpp
#include <iostream>
using namespace std;
// 定义链表节点结构
struct Node {
int data;
Node* next;
};
```
接下来,我们来实现后插法构造链表、打印链表以及获取最大值的函数:
1. 后插法创建链表:
```cpp
// 创建新节点并添加到链表尾部
Node* addElement(int value) {
Node* newNode = new Node(); // 分配内存
newNode->data = value;
newNode->next = nullptr; // 初始时下一个节点为空
if (head == nullptr) { // 如果链表为空,直接设置头结点
head = newNode;
} else {
Node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode; // 添加新节点到尾部
}
return newNode;
}
// 初始化链表,这里假设已经有一个名为head的全局变量指向链表头
void createLinkedList(int arr[], int n) {
for (int i = 0; i < n; i++) {
addElement(arr[i]);
}
}
```
2. 打印链表中的所有整数:
```cpp
// 打印链表中的所有整数
void printList(Node* head) {
Node* temp = head;
while (temp != nullptr) {
cout << temp->data << " ";
temp = temp->next;
}
cout << endl;
}
```
3. 获取单链表中的最大整数值:
```cpp
// 获取链表中的最大值
int getMax(Node* head) {
if (head == nullptr) {
return INT_MIN; // 返回最小整数值表示空链表
}
int maxVal = head->data;
Node* temp = head->next;
while (temp != nullptr) {
if (temp->data > maxVal) {
maxVal = temp->data;
}
temp = temp->next;
}
return maxVal;
}
```
阅读全文