数据结构顺序表初始化,插入,删除等操作的实现

运行结果:

数据结构顺序表初始化,插入,删除等操作的实现_第1张图片数据结构中线性表的初始化,长度,删除等操作的实现

//定义SqList类型的指针psqList 
//初始化psqList指向的线性表
//顺序把‘o’,‘l’,‘L’,‘e’,‘e’,'H'六个字符插入到线性表psqList的位置1
//判断线性表是否为空 
//显示线性表psqList当前的长度
//顺序显示线性表psqList的所有元素
//删除线性表psqList位置2的元素,显示线性表的元素
//查找值为'L'元素的位置,如果查找到则修改该元素值为'l',显示线性表元素 
/*撤销线性表psqList*/ 
#include
#include
#define MaxSize 56
#define bool int

Typedef char ElemType;
Typedef struct
{
     
    ElemType data[MaxSize];
    int length;
} SqList;

void InitList_Sq(SqList *&L)//初始化线性表
{
     
   L=(SqList *)malloc(sizeof(SqList));
   l->length==0;
}

void CreaList_Sq(SqList *&L,ElemType a[],int n)//初始化线性表元素
{
     
   int i;
   L=(SqList *)malloc(sizeof(SqList));
   for(i=0;i<n.i++)
   L->data[i]=a[i];
   l->length=n;
}

void ListEmpty(SqList *L)//判断线性表是否为空
{
     
   return(L->length==0)
}

void ListLength(SqList *L)//线性表的长度
{
     
   return(L->length);
}

void ListTraverse_Sq(SqList *&L)//显示元素
{
     
   int i;
   for(i=0;i<L->length;i++)
   printf("%d\t",L->data[i]);
   printf("\n");
}

void ListDelet(SqList *&L,int i,ElemType &e)//删除线性表元素
{
     
   int j;
   if(L->length==0)
   	printf("该线性表为空\n");
   if(i<1||i>L->length)
   	printf("删除元素不在范围内\n");
   e=L->data[i-1];
   if(i<L->length)
   {
     
	for(j=i,j<L->length;j++)
	L->data[j-1]=L->data[j];
   }
   L->length--
}

bool LocatElem(SqList *L,ElemType e)//按元素值查找
{
     
   int i;
   while(i<L->length&&L->data[i]!=e)
   	i++;
   if(i<L->length)
   	return i+1;
   else
   	return 0;
}

void DestroyList(SqList *&L)
{
     
   free(L);
}

int main()
{
     
   SqList *psqList;
   ElemType c;
   InitList_Sq(psqList);
   char a[]={
     'o','l','L','e','e','H'};
   CreaList_Sq(psqList, a,6);
   if(psqList->length==0)
       printf("线性表为空\n");
   else
      printf("该线性表非空\n");
   printf("线性表的长度为%d\n",ListLength(psqList)); 
   ListTraverse_Sq(psqList);
   printf("删除第二个元素之后的线性表为:\n");
   ListDelet(psqList,2,c);
   ListTraverse_Sq(psqList);
   printf("元素'L'的位置为%d\n",LocatElem(psqList,'L');
   L->data[LocatElem(psqList,'L')-1]='l';
   ListTraverse_Sq(psqList);
   DestroyList(psqList);
   
   return 0;
}

你可能感兴趣的:(数据结构)