数据结构顺序表基本操作(c语言)
#ifndef _SList_H_
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef int ElemType;
typedef struct
{
ElemType data[ MAX] ;
int length;
} List;
void InitiList ( List * L) ;
void InsertsList ( List * L ) ;
int InsertList ( List * L, ElemType e, int n) ;
int Locate ( List * L, ElemType e) ;
int GetElem ( List * L, int n) ;
int DeleteList ( List * L, int n) ;
void printfList ( List * L) ;
#endif
#include <stdio.h>
#include "SList.h"
void InitiList ( List * L)
{
L-> length= 0 ;
}
void InsertsList ( List * L )
{
int n;
ElemType e;
printf ( "输入要插入元素的个数:" ) ;
scanf ( "%d" , & n) ;
for ( int i = L-> length; i < n; i++ )
{
printf ( "输入元素:" ) ;
scanf ( "%d" , & e) ;
L-> data[ i] = e;
L-> length++ ;
}
}
int InsertList ( List * L, ElemType e, int n)
{
if ( n< 1 || n>= L-> length+ 1 )
{
return 0 ;
}
for ( int i= L-> length ; i> n ; i-- )
{
L-> data[ i] = L-> data[ i- 1 ] ;
}
L-> data[ n] = e;
L-> length++ ;
}
int Locate ( List * L, ElemType e)
{
int i= 0 ;
while ( i> L-> length|| L-> data[ i] != e)
{
i++ ;
}
if ( i>= L-> length)
{
return 0 ;
}
else
{
return ( i+ 1 ) ;
}
}
int GetElem ( List * L, int n)
{
if ( n> L-> length)
{
return 0 ;
}
else
{
return L-> data[ n- 1 ] ;
}
}
int DeleteList ( List * L, int n)
{
if ( n> L-> length|| n< 1 )
{
return 0 ;
}
for ( int i = n; i < L-> length; i++ )
{
L-> data[ i- 1 ] = L-> data[ i] ;
}
L-> length-- ;
}
void printfList ( List * L)
{
for ( int i = 0 ; i < L-> length; i++ )
{
printf ( "%d" , L-> data[ i] ) ;
}
}
}