#include"stdio.h"
 #include"stdlib.h"
 #define MAXSIZE 10
 #define OK 1
#define YES 1
 #define NO 0
  
 struct Sqlist
 {
     int a[MAXSIZE];
     int length;
  };
  
 void listlength(Sqlist *list)
 {
     printf("线性表得长度:%d\n",list->length);
 }
int emptylist(Sqlist list)    //判断线性表是否为空;
 {
     if(list.length==0)
     {
         return YES;
     }
     else
     {
         return NO;
     }
  }
  
 int initlist(Sqlist *list)
 {
     list->length=0;
     return OK;
 }
  
 void listinsert(Sqlist *list,int num,int n)
 {
     int i;
     for(i=MAXSIZE-1;i>=n;i--)
     {
         list->a[i]=list->a[i-1];
     }
     list->a[n-1]=num;
     list->length ++;
 }
void printlist(Sqlist list)
 {
     printf("数据:");
     for(int i=0;i<list.length;i++)
     {
         printf("%3d",list.a[i]);
     }
     
 }
  
 void clearlist(Sqlist *list)
 {
     list->length=0;
 }
 int deldata(Sqlist *list,int num,int sign)
 {
     int i;
     
    
     for(i=0;i<list->length;i++)
     {    
         
         if(list->a[i]==num)
         {    
             for(int k=i;k<list->length;k++)
             {
                 list->a[k]=list->a[k+1];
             }
             sign=1;
         }
     }
     if(sign==1)
     {
         list->length --;
     }
     return sign;
 }
void locateElem(Sqlist list,int num)
 {
     int i,sign,j;
     for(i=0;i<list.length;i++)
     {
         if(num==list.a[i])
         {
             sign=1;
             j=i+1;
             break;
         }
         else
         {
             sign=0;
         }
         
     }
     if(sign==1)
     {
         printf("%d存在,在第%d位",num,j);
     }
     else
     {
         printf("%d不存在",num);
     }
 }
  
  
 int main()
 {
     struct Sqlist list;
     int i;
     i=initlist(&list);  //初始化性表
     
     i=emptylist(list);     //判断线性表是否为空
     if(i=1)
     {
         printf("线 性 表 为 空\n");
     }
     else
     {
         printf("线 性 表 不 为 空\n");
     }
     
     for(int j=1;j<=5;j++)
     {
         listinsert(&list,j,1);
     }
     listlength(&list);   //线性表的长度  
    printlist(list);   //显示表里得数据项;
     printf("\n");
     
     clearlist(&list);
     printf("清空线性表中:\n");
     i=emptylist(list);
     if(i=1)
     {
         printf("清空成功\n");
     }
     else
     {
         printf("ERROR\n");
     }
     
     printlist(list);
     printf("\n");
     printf("加入新的数据项:\n");
     for(int j=1;j<=10;j++)
     {
         listinsert(&list,j,1);
     }
     printlist(list);
     printf("\n");
     listlength(&list);
     
     
     //删除数据
     int sign=0,num;
     printf("删除的数据:");
     scanf("%d",&num);
     getchar();
     
     sign=deldata(&list,num,sign);
     
     if(sign==0)
     {
         printf("删除得元素不存在");
     }
     else
     {
         printf("删除后:");
         printlist(list);
     }
     printf("\n");
     
     
     //查找某一元素是否存在
     printf("输入查找得元素:");
     scanf("%d",&num);
     getchar();
     locateElem(list,num);
     
     
 }