数据结构c++本关任务:编写一个顺序表。该顺序表的菜单如下(菜单选页用字母设定): C:创建顺序表,格式为先输入C’再输入元素个数num,再输入对应的num个元素 G:顺序表取值,格式为先输入G’再输
时间: 2024-09-24 14:13:51 浏览: 46
在C++中,你可以通过定义一个简单的线性数据结构来实现一个顺序表,通常称之为数组或者动态数组。这里是一个基础的顺序表(Linear List)的简单实现,包括创建列表(Create)和取值(Get)的操作:
```cpp
#include <iostream>
using namespace std;
class ListNode {
public:
int data;
ListNode* next;
ListNode(int value) : data(value), next(nullptr) {}
};
class SequenceList {
private:
ListNode* head;
public:
// 创建顺序表
void create() {
cout << "请输入要添加的元素个数: ";
int num;
cin >> num;
head = new ListNode[0]; // 初始为空列表
for (int i = 0; i < num; ++i) {
int element;
cout << "请输入第" << (i+1) << "个元素: ";
cin >> element;
head = insertElement(head, element); // 添加元素到链表头部
}
}
// 插入元素到链表头部
ListNode* insertElement(ListNode* list, int value) {
ListNode* newNode = new ListNode(value);
newNode->next = list;
return newNode;
}
// 顺序表取值
void getValue() {
if (head == nullptr) {
cout << "列表为空,无法获取值。" << endl;
return;
}
cout << "当前列表内容: ";
printList(head);
}
// 打印整个链表
void printList(ListNode* node) {
while (node != nullptr) {
cout << node->data << " -> ";
node = node->next;
}
cout << "nullptr\n";
}
};
// 主函数示例
int main() {
SequenceList seqList;
char menuOption;
do {
cout << "选择操作(C - 创建,G - 取值): ";
cin >> menuOption;
switch (menuOption) {
case 'C':
seqList.create();
break;
case 'G':
seqList.getValue();
break;
default:
cout << "无效选项,请输入C或G。\n";
break;
}
} while (menuOption != 'Q'); // 添加退出条件,例如输入'Q'退出
return 0;
}
```
这个实现是一个非常基础的版本,仅支持在命令行界面交互。实际应用中,你可能会将其封装成类并提供更多的功能,如删除、查找等。
阅读全文