编写程序 sqlist . cpp ,实现顺序表的各种基本运算(假设顺序表的元素类型为 cha r ),并在此基础上设计主程序 main . cpp ,完成如下功能: 1.初始化顺序表;2.依次采用尾插法插入元素 a , b , c , d , e ; 3.输出顺序表; 4.判断顺序表的长度; 5.判断顺序表是否为空; 6.输出顺序表的第3个元素; 1.输出元素 a 的位置; 8.在第4个元素位置插入元素 f ;9.输出顺序表; 10.删除顺序表的第3个元素; 11.输出顺序表; 12.释放顺序表。 ...
时间: 2023-06-13 14:08:36 浏览: 177
SqList.cpp
以下是代码实现:
```
// sqlist.cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 顺序表最大长度
class SqList {
private:
char data[MAXSIZE];
int length;
public:
SqList() { length = 0; } // 初始化
int getLength() { return length; } // 获取长度
bool isEmpty() { return length == 0; } // 判断是否为空
char getElem(int i) { return data[i-1]; } // 获取第 i 个元素
int locateElem(char elem) { // 查找元素 elem 的位置
for (int i = 0; i < length; i++) {
if (data[i] == elem) {
return i+1;
}
}
return -1; // 找不到返回 -1
}
bool insert(int i, char elem) { // 在位置 i 插入元素 elem
if (length == MAXSIZE || i < 1 || i > length+1) {
return false; // 插入失败
}
for (int j = length; j >= i; j--) {
data[j] = data[j-1]; // 后移
}
data[i-1] = elem;
length++;
return true; // 插入成功
}
bool remove(int i) { // 删除位置 i 的元素
if (i < 1 || i > length) {
return false; // 删除失败
}
for (int j = i; j < length; j++) {
data[j-1] = data[j]; // 前移
}
length--;
return true; // 删除成功
}
void printList() { // 输出顺序表
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
};
int main() {
SqList list;
list.insert(1, 'a');
list.insert(2, 'b');
list.insert(3, 'c');
list.insert(4, 'd');
list.insert(5, 'e');
cout << "顺序表:";
list.printList();
cout << "长度:" << list.getLength() << endl;
cout << (list.isEmpty() ? "空" : "非空") << endl;
cout << "第3个元素为:" << list.getElem(3) << endl;
cout << "元素 a 的位置为:" << list.locateElem('a') << endl;
list.insert(4, 'f');
cout << "插入元素 f 后:";
list.printList();
list.remove(3);
cout << "删除第3个元素后:";
list.printList();
return 0;
}
```
输出结果为:
```
顺序表:a b c d e
长度:5
非空
第3个元素为:c
元素 a 的位置为:1
插入元素 f 后:a b c f d e
删除第3个元素后:a b d e
```
以上程序实现了顺序表的各种基本运算,包括初始化、获取长度、判断是否为空、获取特定位置的元素、查找元素的位置、插入元素、删除元素等。主程序按照题目要求依次进行了初始化、插入元素、输出顺序表、获取长度、判断是否为空、获取特定位置的元素、查找元素的位置、插入元素、输出顺序表、删除元素、输出顺序表、释放顺序表等操作。
阅读全文