#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1000
typedef int DataType;
/*结构体定义部分*/
typedef struct
{
DataType data[MAXSIZE];
int last;
}Seqlist;
/*****************************************
函数名称:Create
函数参数:SeqList *L 指针类型参数(引用类型)
函数功能:按顺序创建有序顺序表
函数返回值:无
*****************************************/
void Create(Seqlist *L)
{
int i;
printf("\n n=");
scanf("%d",&(L->last));
for(i=1;i<=L->last;i++)
{
printf("data=%d ",i);
L->data[i-1]=i;/*输入数据*/
}
}
/*******************************************
函数名称:Insert
函数参数:SeqList *L 指针类型参数(引用类型),
int i 顺序表中的位序
DataType e 数据
函数功能:在顺序表中某一位置插入一个数据
函数返回值:1(正确)或-1(错误)
******************************************/
int Insert(Seqlist *L,int i,DataType e)
{
int j;
i--;
if(L->last==MAXSIZE)
return -1;
if(i<0||i>L->last-1)
return -1;
else
{
for(j=L->last-1;j>=i;j--)
{
L->data[j+1]=L->data[j];
}
L->data[i]=e;
L->last++;
return 1;
}
}
/*******************************************
函数名称:Delete
函数参数:SeqList *L 指针类型参数(引用类型),
int i 顺序表中的位序
函数功能:在顺序表中某一位置删除一个数据
函数返回值:1(正确)或-1(错误)
******************************************/
int Delete(Seqlist *L,int i)
{
int j;
i--;
if(i<0||i>L->last-1)
return -1;
else
{
for(j=i;j<L->last-1;j++)
{
L->data[j]=L->data[j+1];
}
L->last--;
}
}
/*******************************************
函数名称:Location
函数参数:SeqList *L 指针类型参数(引用类型),
DataType e 数据
函数功能:在顺序表中某按照某一数值查找其位置
函数返回值:i(返回数值的存储位置)或-1(错误)
******************************************/
int Location(Seqlist *L,DataType e)
{
int i=0;
while(i<=L->last&&L->data[i]!=e)
{
i++;
}
if(i>L->last)
return -1;
else
return i;//返回存储位置
}
/*******************************************
函数名称:Location
函数参数:SeqList *L 指针类型参数(引用类型),
DataType e 数据
函数功能:在顺序表中某按照某一数值查找其位序
函数返回值:i(返回数值的位序)或-1(错误)
******************************************/
int Location2(Seqlist *L,DataType e)
{
int i;
for(i=0;i<L->last;i++){
if(L->data[i]==e)
return i+1;//返回位序
}
return 0;
}
/*******************************************
函数名称:Display
函数参数:SeqList *L 指针类型参数(引用类型),
函数功能:按顺序打印输出顺序表中的元素
函数返回值:无
******************************************/
void Display(Seqlist *L)
{
int i;
for(i=0;i<L->last;i++)
{
printf("\ndata=%d",L->data[i]);
}
}
int main()
{
Seqlist L;
Create(&L);
//Insert(&L,5,9);
//Delete(&L,3);
int i= Location(&L,3) ;
printf("%d",i);
// Display(&L);
}