1. 程式人生 > >順序表的建立、列印、查詢、插入、刪除

順序表的建立、列印、查詢、插入、刪除

#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);
}