插入、修改、删除、查找
#include "stdio.h"
#include "malloc.h"
//表的结构
typedef struct
{
int data[100];
int length;
} Seqlist;
//创建表
void creatSeqlist(Seqlist *L)
{
int i,len,tmp;
printf("请输入表的长度:");
scanf("%d",&len);
L->length=0;
printf("请输入元素:\n");
for(i=0; i<len; i++)
{
scanf("%d",&tmp);
L->data[i]=tmp;
L->length++;
}
}
//打印出表
void showSeqlist(Seqlist *L)
{
int i;
printf("\n");
printf("输出当前表中元素:\n");
for(i=0; i<L->length; i++)
{
printf("%d\n",L->data[i]);
}
}
//在表中插入元素
void insert(Seqlist *L,int elem,int index)
{
if(index>L->length || index<0)
{
printf("错误:插入位置超出表长\n");
}
else
{
printf("在第%d位后插入%d\n",index,elem);
int i;
for(i=L->length; i>=index; i--)
{
L->data[i+1]=L->data[i];
}
L->data[index]=elem;
L->length++;
}
}
//删除表中元素
void delete(Seqlist *L,int index){
printf("您要删除的是第%d位的元素%d\n",index,L->data[index-1]);
if(index<L->length || index>0){
int i;
for(i=index-1;i<L->length-1;i++){
L->data[i]=L->data[i+1];
}
L->length--;
}else printf("错误:要删除的位置超出数组长度");
}
//查找并输出第index位的元素
int find(Seqlist *L,int index){
if(index+1<L->length || index+1>0){
printf("您所查找的元素为:%d",L->data[index+1]);
}else{
printf("错误:所查找的位置超出数组元素");
}
}
//把第inde个位置的元素修改为elem
int edit(Seqlist *L,int index,int elem){
if(index<L->length && index>0){
printf("把第%d个位置的元素换成%d\n",index,elem);
L->data[index-1]=elem;
}else{
printf("错误:修改的位置超出数组长度");
}
}
int main()
{
Seqlist La;
creatSeqlist(&La);//创建表
insert(&La,10,2);//在第2位后插入元素10
showSeqlist(&La);//打印出当前表
delete(&La,2);//删除第2个位置的元素
showSeqlist(&La);//打印出当前表
edit(&La,3,6);//把第3位的元素替换成6
showSeqlist(&La);//打印出当前表
return 0;
}