顺序表

来源:互联网 发布:mac log4j的输出路径 编辑:程序博客网 时间:2024/06/08 18:48
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define MaxSize 100
typedef struct
{
        int data[MaxSize];
        int length;
}Sqlist;
void createSqlist(Sqlist &L);//构建顺序表 
void InitSqlist(Sqlist &L);//初始化顺序表 
void InsertSqlist(Sqlist &L,int x);//插入数据 
int SearchSqlist(Sqlist L,int x);//查找数据 
void DeleteSqlist(Sqlist &L,int x);//删除数据 
void output(Sqlist L);//输出顺序表 
int locate(Sqlist L,int x);//定位元素位置 
int main()
{
    Sqlist L;


    InitSqlist(L);
    createSqlist(L);
    printf("------打印顺序表-----:\n"); 
    output(L);
    printf("------插入元素4-----:\n"); 
    InsertSqlist(L,4);
    printf("------删除元素3-----:\n"); 
    DeleteSqlist(L,3);


    system("pause");
    return 0;
}
//初始化顺序表 
 void InitSqlist(Sqlist &L)
 {
      L.length=0;
}
//构建顺序表 
void createSqlist(Sqlist &L)
{   int i,n,x;
  printf("请输入元素个数:\n"); 
  scanf("%d",&n);
  for(i=0;i<n;i++)
  {
    printf("请输入第%d个元素个数:\n",i+1); 
    scanf("%d",&x);
    L.data[i]=x;
    L.length++;
    
   }
}
//打印顺序表 
void output(Sqlist L)
{
   int i;
for(i=0;i<L.length;i++)
printf("%d\t",L.data[i]);
printf("\n"); 
}
//查找元素
 int SearchSqlist(Sqlist L,int x)
{
    int i,p;
  for(i=0;i<L.length;i++)
   {
    if(L.data[i]==x)
     { p=i;
      break;
      }
    }
 if(i==L.length)
 printf("没有找到!\n");
 return p;
}
//插入数据
 void InsertSqlist(Sqlist &L,int x) 
{
     int i,p;
     p=locate(L,x);
     for(i=L.length-1;i>=p;i--)
     L.data[i+1]=L.data[i];
     L.data[p]=x;
     L.length++;
     output(L); 
    
}
//删除数据 
void DeleteSqlist(Sqlist &L,int x) 
{
    int i,p;
    p=SearchSqlist(L,x);


    for(i=p;i<L.length-1;i++)
    L.data[i]=L.data[i+1];
    L.length--; 
    output(L);

//定位元素位置 
int locate(Sqlist L,int x)
{
    int i;
for(i=0;i<L.length;i++)
  {
     if(x<L.data[i])
     return i;
    }
return i;
}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
0 0