顺序表简单的增删改查
程序员文章站
2022-05-08 08:45:38
...
1.静态分配
#include <stdio.h>
#include <malloc.h>
#define InitSize 100
typedef struct{
int data[InitSize];
//动态分配用Elemtype *data
int length;
}Sqlist;
2.建表
int InitList(Sqlist *L)
{
L->length=0;
return 1;
//动态分配用 L->data=(Elemtype*)malloc(sizeof(ElemType)*InitSize)
}
3.增
int InsertList(Sqlist *L,int i,int x)
{
if(i<1||i>L->length+1) {
printf("数据错误");
return 0;
}
int j;
for(j=L->length;j>=i;j--){
L->data[j]=L->data[j-1];
}
L->data[i-1]=x;
L->length++;
return 1;
}
4.删
int DeleteList(Sqlist *L,int i){
if(i<1||i>L->length){
printf("数据错误");
return 0;
}
for(int j=i;j<L->length;j++){
L->data[j-1]=L->data[j];
}
L->length--;
return 1;
}
5.改
int updateList(Sqlist *L,int i,int e){
if(i<1||i>L->length){
printf("数据错误");
return 0;
}else{
L->data[i-1]=e;
return 1;
}
}
6.查
int findList(Sqlist *L,int e){
for(int i=0;i<L->length;i++){
if(L->data[i]==e)
return i+1;
}
printf("没有找到该数");
return 0;
}
7.输出表
void List(Sqlist *L){
for(int i=0;i<L->length;i++){
printf("%d",L->data[i]);
}
}
8.main
int main(){
Sqlist L;
InitList(&L);
printf("* 请输入你要进行的操作: *\n");
printf("* 1.读取顺序表中的内容 *\n");
printf("* 2.插入操作 *\n");
printf("* 3.删除操作 *\n");
printf("* 4.查找操作 *\n");
printf("* 5.修改操作 *\n");
int t;
int i,e,n;
while(~scanf("%d",&t)){
switch(t){
case 1:
List(&L);
break;
case 2:
printf("请输入要插入的位置和数");
scanf("%d%d",&i,&e);
InsertList(&L,i,e);
break;
case 3:
printf("请输入要删除的位置");
scanf("%d",&i);
DeleteList(&L,i);
break;
case 4:
printf("请输入要查找的数") ;
scanf("%d",&e);
n=findList(&L,e);
if(n!=-1){
printf("%d",n);
break;
case 5:
printf("请输入要修改的位置和数");
scanf("%d%d",&i,&e);
updateList(&L,i,e);
break;
}
}
}
return 0;
}
上一篇: MySQL中表的增删改查(CRUD)
下一篇: MYSQL官方手册(中文)?
推荐阅读