///
//---------------------------------------------------------
// 顺序存储结构线性表基本操作 纯C语言实现
//
// a simple example of Sq_List by C language
//
// by wangweinoo1[PG]
//---------------------------------------------------------
///
#include <stdio.h>
#include <stdlib.h>
//以下为函数运行结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 5 //线性表存储空间的初始分配量
#define LISTINCREMENT 1 //线性表存储空间分配增量
typedef int Status; //函数类型,其值为为函数结果状态代码
typedef int ElemType; //假设数据元素为整型
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量
}Sqlist;
//实现线性表的顺序存储结构的类型定义
static Sqlist L;//为了引用方便,定义为全局变量
static ElemType element;
///
//函数名:InitList()
//参数:SqList L
//初始条件:无
//功能:构造一个空线性表
//返回值:存储分配失败:OVERFLOW
// 存储分配成功:OK
///
Status InitList(Sqlist L)
{
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(L.elem==NULL)
exit(OVERFLOW);
else
{
L.length=0;
L.listsize=LISTINCREMENT;
return OK;
}
}
///
//函数名:DestroyList(
数据结构 线性表实现之二
最新推荐文章于 2024-09-14 22:38:49 发布
本文深入探讨数据结构中的线性表,详细阐述其概念、特点,并通过实例解析线性表的常见实现方式,包括顺序存储和链式存储,强调它们在不同场景下的优缺点。
摘要由CSDN通过智能技术生成