#include <stdio.h> #define maxsize 50//定义一个最大的数据值,便于操作 typedef int ElemType;//使用typedef定义一个类型,便于以后的操作 typedef struct { ElemType data[maxsize]; int len; }SqList;//定义一个顺序表结构体 bool list_insert(SqList &L,int i,ElemType e){ if (i<1 || i>L.len+1){//因为数据结构规定第一个数下标为1,所以若查找的i比1小或者超出顺序表长度,则为false return false; } if (L.len==maxsize){//若长度等于最大值,也无法插入,所以也为false printf("The number is max,you can not input other number\n"); return false; } int j; for ( j= L.len; j>=i ; j--) {//因为C语言中下标为1是从0开始,与数据结构规定不同,所以统一减1 L.data[j]=L.data[j-1]; } L.data[i-1]=e; L.len++; return true; }//顺序表插入函数 void list_printf(SqList L){ int i; for ( i = 0; i <L.len ; i++) { printf("%d ",L.data[i]); } printf("\n"); }//顺序表的打印 int list_delete(SqList &L,int i,ElemType &e){ if (i<1 || i>L.len+1){ return 0; } e=L.data[i-1]; int j; for (j = i; j <L.len ; j++) { L.data[j-1]=L.data[j]; } printf("delete's location is %d\n",i); L.len--; return 1; }//顺序表的删除 int research(SqList L,ElemType e){ for (int i = 0; i <L.len ; i++) { if(e==L.data[i]){ return i+1; } } return 0; }//顺序表的查找 int main() { SqList L;//创建一个顺序表 bool ret; int yxl; ElemType e; L.data[0]=1; L.data[1]=2; L.data[2]=1; L.data[3]=10; L.len=4; ret=list_insert(L,2,88); if(ret){//直接使用ret是因为函数返回的数值为true,相当于ret==true printf("insert success\n"); list_printf(L); } else{ printf("insert fail\n"); } printf("*********************\n"); yxl=list_delete(L,2,e); if (yxl==1){ printf("delete success\n"); printf("elemt= %d\n",e); list_printf(L); } else{ printf("delete fail\n"); } printf("*******************\n"); yxl=research(L,10); if (yxl!=0){ printf("research success\n"); printf("elemt= %d\n",yxl); } else{ printf("research fail\n"); } return 0; }
数据库顺序表的插入、删除、查找
最新推荐文章于 2023-10-29 00:58:36 发布