线性表的顺序存储 c语言表达,线性表的基本操作顺序存储(C语言).doc
線性表的基本操作順序存儲(C語言)
#include#include#include#define LIST_INIT_SIZE/*線性表存儲空間初始分配量*/#define LISTINCREMENT/*線性表存儲空間分配增量*/#define ok? 1#define OVERFLOW? -1#define false? 0typedef struct {?ElemType *elem;/*存儲空間*/?int lenght;/*當前線性表長度*/?int? listsize;/*當前分配的存儲容量*/}SqList;
int InitList_Sq(SqList *L){? /*構建空線性表*/? L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));/*分配存儲空間*/?if(!L->elem)exit(OVERFLOW);/*分配存儲空間失敗*/?L->lenght=0; /*初始化線性表長度為0*/?L->listsize=LIST_INIT_SIZE;/*初始存儲容量*/?return ok;}
int LenghtList_Sq(SqList *L){/*求線性表長度*/? return L->lenght;}int DestroyList_Sq(SqList *L)?
?{?? /*銷毀線性表*/?? free(L->elem);/*釋放存儲空間*/?? L->elem=NULL;/*線性表中元素為0*/?? L->length=0;/*線性表長度為0*/?? L->listsize=0;/*存儲空間為空*/?? return ok;
?}
int? ClearList(SqList *L)? {/*清零操作*/?? L->length=0;/*線性表長度為0*/? return ok;
}
int? ListEmpty(SqList *L)? {? /*判空操作*/? if(L.length=0)/*線性表長度為0*/?? return True;?else?return False;}
int ?GetElem(SqList *L,int i,ElemType *e)
{?? /*得到第I 個元素的數據元素的值*/?? if(i<1 || i>L.length)?? return false;?? e=*(L->elem+i-1);/*取第i個元素,并賦值給e*/?? return ok;}
int LocateElem(SqList *L,ElemType e,void (*compare)(ElemType,ElemType))
{? /*查找與E相等的元素的位置*/? ElemType *p;? i=1;? while(i<=L->length && !compare(*p++,e))/*判斷i所在位置*/? ++i;if(i<=L->length)return i;elsereturn 0;
}int PriorElem(SqList *L,ElemType cur_e,ElemType pre_e)?
{/*得到給出的數的前一個元素值*/? int i=2;? ElemType *p;? p=L->elem+1;? while(i<=L->length && !(*p++==cur_e))? ++i;? if(i>L->length)? return false;else
? {
?? pre_e=*--p;?? return OK;
? }
}
?int NextElem(SqList L,ElemType pre_e,ElemType cur_e)
{? /* 得到后一個元素的值*/? int i=1;? ElemType *p;?? p=L->elem;? while(ilength && !(*p++==pre_e))? ++i;? if(i>=L->length)? return false;else
? {
??? cur_e=*++p;??? return OK;
? }
}
?int InsertElem(SqList *L,int i,ElemType e)?
{? /*在第I個元素中插入一個值為E的元素*/? int newbase;? SqList *p,*q;?if(i<1 || i>=length+1)/*判斷i是否在線性表中*/?return ERROR;?if(L->length>=L->listsiz
總結
以上是生活随笔為你收集整理的线性表的顺序存储 c语言表达,线性表的基本操作顺序存储(C语言).doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国微型计算机分省市产量数据统计,201
- 下一篇: java .listfiles_Java