#include#define ERROR 0 #define OK 1 #define MAXSIZE 100 typedef int ElemType; typedef struct { ElemType elem[MAXSIZE]; int last; }SeqList; int Locate(SeqList L,ElemType e) { int i=0 ; while ((i<=L.last)&&(L.elem[i]!=e) ) i++; if(i<=L.last) return(i); else return(-1); } //顺序表的插入 int InsList(SeqList *L,int i,ElemType e) { int k; if((i<1) || (i>L->last+2)) { printf("插入位置i值不合法");return(ERROR); } if(L->last>=MAXSIZE-1) { printf("表已满无法插入"); return(ERROR); } for(k=L->last;k>=i-1;k--) L->elem[k+1]=L->elem[k]; L->elem[i-1]=e; L->last++; return(OK); } int main(){ SeqList l; int p,q,r; //Step1.对顺序表进行初始化 int i; printf("请输入线性表的长度:"); scanf("%d",&r); l.last = r-1;//最后一个元素的下标值 printf("请输入线性表的各元素值:n"); for(i=0; i<=l.last; i++) { scanf("%d",&l.elem[i]); } //Step2.调用函数进行查找 printf("请输入要查找的元素值:n"); scanf("%d",&q); p=Locate(l,q); if(p == -1) printf("在此线性表中没有该元素!n"); else printf("该元素在线性表中的位置为:%dn",p); //Step3.接下实现顺序表插入运算 int Insert_i,Insert_e,Insert_flag; printf("请输入要插入元素的位置和元素值(i,e):"); scanf("%d,%d",&Insert_i,&Insert_e); Insert_flag=InsList(&l,Insert_i,Insert_e); if(Insert_flag == 1) { printf("在此线性表中元素插入成功!n"); printf("新顺序表的长度为%d,",l.last+1); printf("各元素为:"); for(i=0; i<=l.last; i++) { printf("%d ",l.elem[i]); } } else printf("在此线性表中元素插入失败!n"); return OK; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)