首页 > C/C++ > 《数据结构》之顺序表(LinerList)的C语言实现

《数据结构》之顺序表(LinerList)的C语言实现

2010年11月24日 发表评论 阅读评论

以下是线性表的实现头文件,具体的实现文件(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

转载请标明出处:萝卜根

原文地址请标明:原文地址

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*

:yund: :yun: :yes: :xiaxia: :xiaom: :xiaohan: :wuyu: :wuxiao: :woshou: :woquan: :wink: :tiaodou: :tiaod: :sikao: :pa: :oops: :ok: :no: :mad: :lihai: :leihua: :lei: :ku: :konghe: :kbu: :jiwai: :jiong: :jiay: :huo: :huaixiao: :hanxiao: :han: :haha: :guolai: :guan: :guai: :ganga: :eek: :dou: :diao: :deng: :buli: :bizui: :bishi: :biggrin: :arrow: