《数据结构》之顺序表(LinerList)的C语言实现
以下是线性表的实现头文件,具体的实现文件(Sqlist.c)在本文最后可以下载。
由于作者水平有限,难免有些错误或者考虑不周,请大家多多指正和讨论,共同学习。
/* * ===================================================================================== * * Filename: Sqlist.h * * Description: Linear List implemented by Sequence List * * Version: 1.0 * Created: 2010年11月05日 19时00分52秒 * Revision: none * Compiler: gcc * * Author: zclmoon (a simple programmer), zclmoon@126.com * Company: zclmoon * * ===================================================================================== */ #include #include #define OVERFLOW 1 #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 100 //线性表初始空间的分配量 #define LISTINCREMENT 10 //线性表存储空间的分配增量 typedef int ElemType; //线性表数据类型 typedef int Status;//函数返回类型,一般为0或者1 typedef struct{ ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量 }SqList; Status initList_Sq(SqList *L); //初始化顺序表 Status freeList(SqList *L); //删除顺序表,free顺序表malloc的空间 Status ListInsert_Sq(SqList *L, int i, ElemType e); //在顺序表L中第i个位置之前插入新的元素e Status Vist_Sq(SqList *L);//遍历数出顺序表的元素 Status equal_sq(ElemType src, ElemType dest);//比较两个元素,相等为1,不相等为0 //在顺序表L中查找第一个与e相等的元素的位置 int LocateElem_Sq(SqList *L, ElemType e); //在L中删除第i个元素,并用e返回删除的元素 Status ListDel_Sq(SqList *L, int i, ElemType *e); // //顺序表的合并 //一直顺序表La和Lb的元素按值非递减排列,归并La和Lb得到新的顺序表Lc,Lc //的元素也按值非递减排列 void MergeList_Sq(const SqList *La, const SqList *Lb, SqList *Lc); // //顺序表排序 //ElemType定义为int型,我们可以对顺序表元素进行排序 //采用冒泡排序方法 void Sort_Sq(const SqList *L);
原代码下载:(Sqlist.h Sqlist.c为线性表的实现,test.c为测试线性表的相关功能,merge.c为测试线性表的合并)
Sqlist.c Sqlist.h test.c merge.c
转载请标明出处:萝卜根
原文地址请标明:原文地址