c语言可扩展线性表,数据结构C语言实现系列——线性表

1.关于线性表顺序存储操作的 16 种算法

2.关于线性表链接存储(单链表)操作的 16 种算法

数据结构C语言实现系列——线性表

#include

#include

typedef int elemType;

/************************************************************************//* 以下是关于线性表顺序存储操作的16种算法 */

/************************************************************************/struct List{

elemType *list;

int size;

int maxSize;

};

void againMalloc(struct List *L)

{

/* 空间扩展为原来的2倍,并由p指针所指向,原内容被自动拷贝到p所指向的存储空间 */ elemType *p = realloc(L->list, 2 * L->maxSize * sizeof(elemType)); if(!p){ /* 分配失败则退出运行 */

printf("存储空间分配失败! ");

exit(1);

}

L->list = p; /* 使list指向新线性表空间 */

L->maxSize = 2 * L->maxSize; /* 把线性表空间大小修改为新的长度 */}

/* 1.初始化线性表L,即进行动态存储空间分配并置L为一个空表 */

void initList(struct List *L, int ms)

{

/* 检查ms是否有效,若无效的则退出运行 */

if(ms <= 0){

printf("MaxSize非法! ");

exit(1); /* 执行此函数中止程序运行,此函数在stdlib.h中有定义 */

}

L->maxSize = ms; /* 设置线性表空间大小为ms */

L->size = 0;

L->list = malloc(ms * sizeof(elemType));

if(!L->list){

printf("空间分配失败! ");

exit(1);

}

return;

}

/* 2.清除线性表L中的所有元素,释放存储空间,使之成为一个空表 */

void clearList(struct List *L)

{

if(L->list != NULL){

free(L->list);

L->list = 0;

L->size = L->maxSize = 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值