内容1:编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型ElemType为char), 并在此基础上设计一个程序exp (1)初始化顺序表L。 (2)依次插入a、b、c、d、e元素。 (3)输出顺序表L。 )输出顺序的长度 (6)输出顺序表L的第3个元素。 (7)输出元素a的位置。 (8在第4个元素位置上插人f元素。 (9)输出顺序表1。 (10)删除顺序表L的第3个元素。 (11)输出顺序表L。 (12)释放顺序表L。
时间: 2023-05-30 07:07:16 浏览: 154
#include <iostream>
using namespace std;
#define MaxSize 100
typedef char ElemType;
typedef struct {
ElemType data[MaxSize];
int length;
} SqList;
void InitList(SqList &L) {
L.length = 0;
}
bool ListInsert(SqList &L, int i, ElemType e) {
if (i < 1 || i > L.length + 1 || L.length == MaxSize) {
return false;
}
for (int j = L.length; j >= i; j--) {
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = e;
L.length++;
return true;
}
bool ListDelete(SqList &L, int i) {
if (i < 1 || i > L.length) {
return false;
}
for (int j = i; j < L.length; j++) {
L.data[j - 1] = L.data[j];
}
L.length--;
return true;
}
int LocateElem(SqList L, ElemType e) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == e) {
return i + 1;
}
}
return 0;
}
void PrintList(SqList L) {
for (int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
int main() {
SqList L;
InitList(L);
ListInsert(L, 1, 'a');
ListInsert(L, 2, 'b');
ListInsert(L, 3, 'c');
ListInsert(L, 4, 'd');
ListInsert(L, 5, 'e');
cout << "顺序表L: ";
PrintList(L);
cout << "顺序表L的长度: " << L.length << endl;
cout << "顺序表L的第3个元素: " << L.data[2] << endl;
cout << "元素a的位置: " << LocateElem(L, 'a') << endl;
ListInsert(L, 4, 'f');
cout << "插入元素f后的顺序表L: ";
PrintList(L);
ListDelete(L, 3);
cout << "删除第3个元素后的顺序表L: ";
PrintList(L);
return 0;
}
阅读全文