### 思路
1. **创建顺序表**:从输入中读取元素个数和元素值,构造顺序表。
2. **顺序查找**:在顺序表中依次查找关键字,找到则返回位置,否则返回0。
### 伪代码
1. **创建顺序表**:
- 动态分配存储空间。
- 从输入中读取元素值并存储在顺序表中。
2. **顺序查找**:
- 遍历顺序表,比较每个元素与关键字。
- 如果找到,返回元素位置。
- 如果未找到,返回0。
### C++代码
#include "malloc.h" /* malloc()等 */
#include "stdio.h"
#include "stdlib.h"typedef int ElemType;
typedef struct /*静态查找表的顺序存储结构 */
{ ElemType *elem; /* 数据元素存储空间基址,建表时按实际长度分配,0号单元留空 */ int length; /* 表长度 */
} SSTable; void Creat_Seq(SSTable &ST, int n)
{ int i, temp; ST.elem = (ElemType *)malloc((n + 1) * sizeof(ElemType)); /* 动态生成n个数据元素空间(0号单元不用) */ if (!(ST).elem) {printf("ERROR\n");exit(0);} /*内存分配失败结束程序*/ for (i = 1; i <= n; i++) { scanf("%d", &temp); *(ST.elem + i) = temp; /* 依次赋值给ST */ } ST.length = n;
} int Search_Seq(SSTable &ST, ElemType key)
{ for (int i = 1; i <= ST.length; i++) { if (ST.elem[i] == key) return i; } return 0;
} int main()
{ SSTable ST; int loc, key; int n; scanf("%d", &n); Creat_Seq(ST, n); scanf("%d", &key); loc = Search_Seq(ST, key); if (loc != 0) printf("The element position is %d.\n", loc); else printf("The element is not exist.\n"); return 0;
}
### 总结
1. **创建顺序表**:动态分配存储空间,读取元素值并存储。
2. **顺序查找**:遍历顺序表,比较每个元素与关键字,找到则返回位置,否则返回0。