编写一个程序,实现顺序表的各种基本运算的算法,假设顺序表的元素类型ElemType为char。
时间: 2024-10-12 07:12:22 浏览: 60
编写一个顺序表程序,用于处理字符类型的元素(ElemType为char),通常会包含以下几个基本操作:
1. **初始化**:
```c++
void createList(int size) {
list = (char*)malloc(size * sizeof(char));
if (!list) {
printf("内存分配失败!\n");
return;
}
isFull = false;
}
```
2. **插入元素**:
```c++
void insertAtStart(char item) {
if (isFull) {
printf("已满,无法插入。\n");
return;
}
list[0] = item;
listSize++;
isFull = true;
}
void insertAtEnd(char item) {
if (isFull) {
printf("已满,无法插入。\n");
return;
}
list[length++] = item;
}
```
3. **删除元素**:
```c++
void deleteAtStart() {
if (isEmpty()) {
printf("列表为空,无法删除。\n");
return;
}
memmove(&list[0], &list[1], length - 1);
free(list[length]);
listSize--;
isFull = false;
}
void deleteAtEnd() {
if (isEmpty()) {
printf("列表为空,无法删除。\n");
return;
}
list[length-1] = '\0'; // 空字符占位防止越界
list[length--] = '\0';
free(list[length+1]);
}
```
4. **查找元素**:
```c++
bool search(char item) {
for (int i = 0; i < length; i++) {
if (list[i] == item)
return true;
}
return false;
}
```
5. **显示列表**:
```c++
void display() {
if (isEmpty())
printf("空列表\n");
else {
for (int i = 0; i < length; i++)
printf("%c ", list[i]);
printf("\n");
}
}
阅读全文