8610 顺序查找

### 思路
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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值