1.输入一组关键字并存储。
2.用某种排序算法对关键字序列进行排序
3.输入一个给定值,查找给定值在关键字序列中的位序,若不在表中,则返回0。
代码实现
#include<stdio.h>
#define maxsize 20
#include<stdlib.h>
#include <iostream>
using namespace std;
typedef struct
{
int r[maxsize + 1];//定义为整数类型,r[0]闲置或用作哨兵单元
int length;//顺序表长度
}Sqlist;//顺序表类型定义
//顺序表的创建
void CreatList(Sqlist& L)
{
cout << "请输入数据个数:";
cin >> L.length;
cout << "请输入数据(回车键确认):";
cout << endl;
for (int i = 1; i < L.length + 1; i++)
{
cin >> L.r[i];
}
cout << "顺序表创建完成!" << endl;
}
//起泡排序函数
void bubble(Sqlist& L)
{
int i, j, t;
for(i=0;i<L.length-1;i++)
for (j = 0; j < L.length - i; j++)
{
if (L.r[j] > L.r[j + 1])
{
t = L.r[j];
L.r[j] = L.r[j + 1];
L.r[j + 1] = t;
}
}
}
//打印顺序表
void Print(Sqlist L)
{
for (int x = 1; x < L.length + 1; x++)
{
cout << L.r[x] << " ";
}
cout << endl;
}
//查找函数
int Search_Sqlist(Sqlist L,int key)
{
for (int i = 1; i < L.length; i++)
{
if (L.r[i] == key)
return i;
}
if (L.r[L.length] == key)
return L.length;
else
return 0;
}
//主函数
int main()
{
Sqlist L;
cout << "创建顺序表" << endl;
CreatList(L);
cout << endl;
cout << "排序后的结果为:";
bubble(L);
Print(L);
cout << "请输入查找的数值:";
int key;
cin >> key;
int x=Search_Sqlist(L, key);
if (x ==0)
cout << "不存在该数据" << endl;
else
cout << "数据的位序为:" << x << endl;
}
测试结果: