线性表的顺序表示(C语言) 您所在的位置:网站首页 C语言elemtype 线性表的顺序表示(C语言)

线性表的顺序表示(C语言)

2024-05-03 04:13| 来源: 网络整理| 查看: 265

线性表的顺序表示:

 

#define LIST_INIT_SIZE 100    定义一个线性表类型

#define LISTINCREMENT 10

typedef struct

{

  ElemType *elem; 基址

  int length; 元素的长度

  int listsize;当前的存储容量

 }Sqlist;

 

 void InitList_Sq(Sqlist &L)  初始化操作

 {

   L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

   if(!L.elem)

   return overflow;

   L.length=0;

   L.listsize=LIST_INIT_SIZE;

   return ok;

 }

 

 void DestroyList_Sq(Sqlist &L)  销毁线性表

 {

   free(L.elem);

   L.elem=NULL;

   L.length=0;

   L.listsize=0;

   return ok;

 }

 

void ClearList(Sqlist L)  清零操作

{

  L.length=0;

  return ok;

}

 

void ListEmpty(Sqlist L)  判空操作

{

  if(L.length=0)

   return True;

   else

   return False;

}

 

int ListLength(Sqlist L)  输出表的长度,数据元素个数

{

  return L.length;

}

 

void GetElem(Sqlist &L,int i,ElemType &e) 得到第I 个元素的数据元素的值

{

   if(iL.length)

   return error;

   e=*(L.elem+i-1);

   return ok;

}

 

int LocateElem(Sqlist &L,ElemType e,void (*compare)(ElemType,ElemType)) 查找与E相等的元素的位置

{

  ElemType *p;

  i=1;

  while(i=q;--p)

  *(p+1)=*p;

  *q=e;

  ++L.length;

  return ok;

}

 

void DeleteElem(Sqlist &L,int i,ElemType e)  删除第I个元素

{

  if(i=L.length)

  return FALSE;

  p=L.elem+i-1;

  q=L.elem+L.length-1;

  e=*p;

  for(p;p



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有