编辑代码

#include<stdio.h>

#define MAXSIZE 100
typedef int ElemType;

//顺序表定义 
typedef struct{
	ElemType date[MAXSIZE];
	int length; 
}SeqList;

//顺序表初始化 
void initList(SeqList *L)
{
	L->length=0;
}

/*//动态分配内存地址初始化
typedef struct{
    ElemType *date;
    int length;
}SeqList;

SeqList* initList(SeqList *L)
{
    SeqList *L=(SeqList*)malloc(sizeof(SeqList));
    L->date=(ElemType*)malloc(sizeof(ElemType)*MAXSIZE);
    L->length=0;
    return=0;
}*/


//尾部添加元素
int appendElem(SeqList *L,ElemType e)
{
	if(L->length>=MAXSIZE)
	{
		printf("顺序表已满\n");
		return 0;
	}
	
	L->date[L->length]=e;
	L->length++;
	return 1;
 } 
 
 //遍历
 void listElem(SeqList *L)
 {
 	for(int i=0;i<L->length;i++)
 	{
 		printf("%d",L->date[i]);
        
	 }
	 printf("\n");
  } 

//插入
int insertElem(SeqList *L,int pos,ElemType e)
{
    if(pos<=L->length)
    {
        for(int i=L->length-1;i>=pos-1;i--)
        {
            L->date[i+1]=L->date[i];
        }
        L->date[pos-1]=e;
        L->length++;
    }
    return 1;
}

 //删除
int deleteElem(SeqList *L, int pos, ElemType *e)
{
    *e=L->date[pos-1];
    if(pos<L->length)
    {
        for(int i=pos;i<L->length;i++)
        {
            L->date[i-1]=L->date[i];
        }
    }
    L->length--;
    return 1;
}

//查找
int findElem(SeqList *L, ElemType e)
{
    for(int i=0;i<L->length;i++)
    {
        if(L->date[i]==e)
        {
            return i+1;
        }
    }
    return 0;
}
 
int main(int agrc, char const *argv[])
{
	//声明一个顺序表并初始化 
	SeqList list;
	initList(&list);
	printf("初始化成功,目前长度占用%d\n",list.length);
	printf("目前占用内存%zu字节\n",sizeof(list.date));
	appendElem(&list,88);
	appendElem(&list,67);
	appendElem(&list,40);
	appendElem(&list,8);
    appendElem(&list,23);
	listElem(&list);
    insertElem(&list,1,18);
    listElem(&list);
    ElemType delDate;
    deleteElem(&list,2,&delDate);
    printf("被删除的数据为:%d\n",delDate);
    listElem(&list);
    printf("%d\n",findElem(&list,40));
	return 0; 
	
}