①:在线性表中插入数据
int insertlist (seqlist *l, int i, int x) //在线性表中插入数据{ int k; if(i < 1 || i > l->last + 1) { printf("插入的位置不合法"); return(ERROR); } if(l->last >= maxsize-1) { printf("线性表已经存满"); } for(k = l->last; k >= i - 1;k--) { l->elem[k + 1] = l->elem[k]; } l->elem[i-1] = x; l->last++; //不要忘记把last加一 return(OK);}
②:删除线性表中的元素:
int deletelist(seqlist *l, int i) //删除元素{ int k; if(i < 1 || i > l->last + 1) { printf("删除位置不合法"); return(ERROR); } for(k = i;k < l->last;k++) { l->elem[k - 1] = l->elem[k]; } l->last--; return(OK);}
③:查找线性表元素:
int locate(seqlist *l, int x) //查找元素{ int i; int k; for(i = 0;i < l->last;i++) { if(l->elem[i] == x) { k = i; } else { k = 0; } } return k;}
所有代码:
View Code
#include#include #define maxsize 1024#define OK 1#define ERROR 0typedef struct{ int elem[maxsize]; int last; }seqlist; int main(){ int len,i,j; int position,value; int delpos; int locval,loci; seqlist *la; la=(seqlist *)malloc(sizeof(seqlist)); //分配空间 printf("请输入字符串的长度:"); scanf("%d",&len); la->last = len; //设置线性表的长度 printf("请依次输入数:"); for(i=0;i last;i++) { scanf("%d",&la->elem[i]); //设置值 不要忘记&符号 } printf("输入的数字如下:"); for(j=0;j last;j++) //输出数据 { printf("%d \n",la->elem[j]); } printf("请输入要插入元素的位置:"); scanf("%d",&position); printf("请输入要插入元素的值:"); scanf("%d",&value); insertlist(la,position,value); printf("添加后的线性表如下:"); for(j=0;j last;j++) //输出数据 { printf("%d \n",la->elem[j]); } printf("请输入删除元素的位置:"); scanf("%d",&delpos); deletelist(la,delpos); printf("删除后的线性表如下:"); for(j=0;j last;j++) //输出数据 { printf("%d \n",la->elem[j]); } printf("输入要查找的元素:"); scanf("%d",&locval); loci = locate(la,locval); printf("元素的位置是%d",locval);}int insertlist (seqlist *l, int i, int x) //在线性表中插入数据{ int k; if(i < 1 || i > l->last + 1) { printf("插入的位置不合法"); return(ERROR); } if(l->last >= maxsize-1) { printf("线性表已经存满"); } for(k = l->last; k >= i - 1;k--) { l->elem[k + 1] = l->elem[k]; } l->elem[i-1] = x; l->last++; //不要忘记把last加一 return(OK);}int deletelist(seqlist *l, int i) //删除元素{ int k; if(i < 1 || i > l->last + 1) { printf("删除位置不合法"); return(ERROR); } for(k = i;k < l->last;k++) { l->elem[k - 1] = l->elem[k]; } l->last--; return(OK);}int locate(seqlist *l, int x) //查找元素{ int i; int k; for(i = 0;i < l->last;i++) { if(l->elem[i] == x) { k = i; } else { k = 0; } } return k;}