P21例2-1 编程实现如下任务:建立一个线性表,首先依次输入数据元素1,2,3,...,10,然后删除数据元素5,最后依次显示当前线性表中的数据元素。假设该线性表的数据元素个数在最坏情况下不会超过1

    科技2025-07-21  5

    P21例2-1 编程实现如下任务:建立一个线性表,首先依次输入数据元素1,2,3,…,10,然后删除数据元素5,最后依次显示当前线性表中的数据元素。假设该线性表的数据元素个数在最坏情况下不会超过100个。要求使用顺序表。

    头文件:SeqList.h

    #include<stdio.h> #define MaxSize 100 typedef int DataType; typedef struct { DataType list[MaxSize]; int size; }SeqList; void ListInitiate(SeqList *L) { L->size=0; } int ListLength(SeqList L) { return L.size; } int ListInsert(SeqList *L,int i, DataType x) { int j; if(L->size>=MaxSize) { printf("数组已满无法插入!\n"); return 0; } else if(i<0||i>L->size) { printf("参数i不合法!\n"); return 0; } else { for(j=L->size;j>i;j--) L->list[j]=L->list[j-1]; L->list[i]=x; L->size++; return 1; } } int ListDelete(SeqList *L,int i,DataType *x) { int j; if(L->size<=0) { printf("顺序表已空无数据可删!\n"); return 0; } else if(i<0||i>L->size-1) { printf("参数i不合法"); return 0; } else { *x=L->list[i]; for(j=i+1;j<=L->size-1;j++) L->list[j-1]=L->list[j]; L->size--; return 1; } } int ListGet(SeqList L,int i,DataType *x) { if(i<0||i>L.size-1) { printf("参数i不合法!\n"); return 0; } else { *x=L.list[i]; return 1; } }

    源文件:SeqList.c

    #include"SeqList.h" int main() { SeqList myList; int i,x; ListInitiate(&myList); for(i=0;i<10;i++) ListInsert(&myList,i,i+1); ListDelete(&myList,4,&x); for(i=0;i<ListLength(myList);i++) { ListGet(myList,i,&x); printf("%d ",x); } return 0; }
    Processed: 0.016, SQL: 8