请运用c++语言编程实现一个对顺序表进行基本操作的系统,主要包括表的创建、输入、查询、取值、插入、删除和输出等操作。
时间: 2024-10-24 20:08:03 浏览: 14
用C++实现简单的顺序表
在C++中,我们可以使用结构体(struct)来表示顺序表,然后定义相应的函数来实现这些基本操作。这里是一个简单的例子:
```cpp
#include <iostream>
using namespace std;
// 定义顺序表节点结构体
struct Node {
int data; // 数据域
Node* next; // 指向下一个节点的指针
};
// 创建一个空的顺序表
Node* createList() {
return nullptr;
}
// 在表尾添加元素
void insert(Node** head, int value) {
Node* newNode = new Node();
if (*head == nullptr) {
*head = newNode;
} else {
newNode->next = *head;
*head = newNode;
}
newNode->data = value;
}
// 查找并返回特定索引的值,如果不存在则返回-1
int search(Node* head, int index) {
if (index < 0 || !head) return -1;
for (int i = 0; head && i != index; ++i) {
head = head->next;
}
return head ? head->data : -1;
}
// 获取并删除表头的值
int removeHead(Node** head) {
if (!*head) return -1;
int removedValue = (*head)->data;
Node* temp = *head;
*head = (*head)->next;
delete temp;
return removedValue;
}
// 输出顺序表的所有元素
void display(Node* head) {
if (!head) return;
while (head) {
cout << head->data << " ";
head = head->next;
}
cout << endl;
}
int main() {
Node* list = createList();
// 插入操作示例
insert(&list, 1);
insert(&list, 2);
insert(&list, 3);
// 查询操作示例
cout << "Value at index 1: " << search(list, 1) << endl;
// 删除操作示例
int removedValue = removeHead(&list);
cout << "Removed head: " << removedValue << endl;
// 输出操作示例
display(list);
return 0;
}
```
这个程序首先定义了一个`Node`结构,包含了数据和指向下一个节点的指针。然后我们实现了创建列表、插入、查找、删除和显示功能的函数。在`main`函数中展示了如何使用这些操作。
阅读全文