根据键盘输入数据建立顺序表
时间: 2024-05-02 09:21:34 浏览: 105
建立顺序表的步骤如下:
1. 定义顺序表结构体。顺序表需要包含数据存储区和记录当前元素个数的变量。
```
#define MAXSIZE 100 // 定义顺序表的最大容量
typedef struct {
int data[MAXSIZE]; // 数据存储区
int length; // 当前元素个数
} SqList; // 定义顺序表结构体
```
2. 初始化顺序表。将顺序表的长度设置为0,表示当前没有元素。
```
void InitList(SqList *list) {
list->length = 0; // 初始化长度为0
}
```
3. 插入元素。将新元素插入到顺序表的末尾,并更新长度。
```
bool InsertList(SqList *list, int elem) {
if (list->length >= MAXSIZE) { // 判断顺序表是否已满
return false; // 已满则无法插入
}
list->data[list->length] = elem; // 将新元素插入到末尾
list->length++; // 更新长度
return true;
}
```
4. 删除元素。将要删除的元素后面的所有元素向前移动一个位置,并更新长度。
```
bool DeleteList(SqList *list, int index) {
if (index < 0 || index >= list->length) { // 判断删除位置是否合法
return false; // 不合法则无法删除
}
for (int i = index; i < list->length - 1; i++) { // 将后面的元素向前移动一个位置
list->data[i] = list->data[i + 1];
}
list->length--; // 更新长度
return true;
}
```
5. 查找元素。在顺序表中查找指定元素,并返回其位置。
```
int SearchList(SqList *list, int elem) {
for (int i = 0; i < list->length; i++) { // 遍历顺序表中的元素
if (list->data[i] == elem) { // 如果找到了指定元素
return i; // 返回其位置
}
}
return -1; // 没有找到则返回-1
}
```
6. 修改元素。将顺序表中指定位置的元素修改为新元素。
```
bool ModifyList(SqList *list, int index, int elem) {
if (index < 0 || index >= list->length) { // 判断修改位置是否合法
return false; // 不合法则无法修改
}
list->data[index] = elem; // 将元素修改为新元素
return true;
}
```
7. 输出顺序表。遍历顺序表中的元素,并输出到屏幕。
```
void PrintList(SqList *list) {
for (int i = 0; i < list->length; i++) { // 遍历顺序表中的元素
printf("%d ", list->data[i]); // 输出元素
}
printf("\n"); // 换行
}
```
通过以上步骤,就可以建立一个基本的顺序表。在实际应用中,还需要根据具体的需求进行扩展和优化。
阅读全文