#include<stdio.h>
#define MaxSize 100
typedef int DataType;
typedef struct seqlist{
DataType data[MaxSize]; //存放数据的数组
int length; //顺序表的长度
}SeqList,*SeQ;
void Create(SeQ sql) //创建顺序表
{
int i,x;
printf("请输入顺序表大小:");
scanf("%d",&x);
sql->length=x;
for(i=0;i<sql->length;i++)
{
printf("请输入第%d个数据元素:",i+1);
scanf("%d",&x);
sql->data[i]=x;
}
}
void Output(SeQ sql) //输出顺序表
{
int i;
printf("顺序表元素:");
for(i=0;i<sql->length;i++)
printf("%d ",sql->data[i]);
printf("\n");
}
void Insert(SeQ sql,DataType x,int i) //插入元素
{
int j;
if(i<1||i>sql->length+1)
exit("位置错!");
if(sql->length==MaxSize)
exit("表已满!");
for(j=sql->length;j>=i;j--)
sql->data[j]=sql->data[j-1]; //依次后移
sql->data[i-1]=x;
sql->length++;
}
void Delete(SeQ sql,int i) //删除元素
{
if(i<1||i>sql->length+1)
exit("位置错!");
int j;
for(j=i;j<sql->length;j++)
sql->data[j-1]=sql->data[j]; //依次左移
sql->length--;
}
void Loact(SeQ sql,int i) //定位元素
{
int count=0;
if(i<1||i>sql->length+1)
exit("位置错!");
while(count<i)
count++;
printf("该元素为:%d",sql->data[--count]);
}
main()
{
SeQ sql;
sql=malloc(sizeof(SeqList));
Create(sql);
Output(sql);
int x,i;
printf("插入一个元素到指定的位置:");
scanf("%d%d",&x,&i);
Insert(sql,x,i);
Output(sql);
printf("删除指定位置元素:");
scanf("%d",&i);
Delete(sql,i);
Output(sql);
printf("查找指定位置元素:");
scanf("%d",&i);
Loact(sql,i);
}
线性表
最新推荐文章于 2024-05-04 13:45:26 发布