順序表的建立、列印、查詢、插入、刪除
阿新 • • 發佈:2019-02-02
#include <stdio.h> #include <stdlib.h> #define listsize 100 typedef struct{ int data[listsize]; int length; }Seqlist; void createlist(Seqlist *l,int n){ int i=0; printf("請輸入順序表的元素:\n"); for(i=0;i<n;i++){ scanf("%d",&l->data[i]); } l->length=n; } void locatelist(Seqlist *l,int n){ int i=0,m; printf("請輸入要查詢的元素:\n"); scanf("%d",&m); while(i<l->length-1&&l->data[i]!=m) i++; if(i>=l->length) printf("順序表中沒有此元素!"); else printf("找到了元素%d它是順序表的第%d個元素\n",m,i+1); } void insertlist(Seqlist *l,int pos,int e){ int j; printf("\n請輸入你要插入的位置和元素:\n\n"); scanf("%d %d",&pos,&e); for(j=l->length;j>=pos-1;j--){ l->data[j]=l->data[j-1]; } l->data[pos-1]=e; l->length++; } void deletelist(Seqlist *l,int pos,int e){ int j; printf("請輸入你要刪除的位置:\n"); scanf("%d",&pos); e=l->data[pos-1]; for(j=pos-1;j<l->length-1;j++){ l->data[j]=l->data[j+1]; } l->length--; } void printlist(Seqlist *l,int n){ int i=0; printf("\n列印順序表:\n"); for(i=0;i<l->length;i++){ printf("%d ",l->data[i]); } printf("\n"); } int main() { Seqlist l; int n,pos ,e; l.length=0; printf("請輸入順序表的長度:\n"); scanf("%d",&n); createlist(&l,n); locatelist(&l,n); insertlist(&l,pos,e); printlist(&l,n); deletelist(&l,pos,e); printlist(&l,n); }