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

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

ID:11934572

大小:61.00 KB

页数:16页

时间:2018-07-15

关于线性表顺序存储操作的16种算法_第1页
关于线性表顺序存储操作的16种算法_第2页
关于线性表顺序存储操作的16种算法_第3页
关于线性表顺序存储操作的16种算法_第4页
关于线性表顺序存储操作的16种算法_第5页
资源描述:

《关于线性表顺序存储操作的16种算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include #include typedef int elemType;/************************************************************************//*                以下是关于线性表顺序存储操作的16种算法                       *//************************************************************************/struct List

2、{    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);

3、    }    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);    /* 执行此函数中止程序

4、运行,此函数在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

5、->list != NULL){        free(L->list);        L->list = 0;        L->size = L->maxSize = 0;    }    return;}/* 3.返回线性表L当前的长度,若L为空则返回0 */int sizeList(struct List *L){    return L->size;}/* 4.判断线性表L是否为空,若为空则返回1, 否则返回0 */int emptyList(struct List *L){    if(L->size ==0){        retu

6、rn 1;    }    else{        return 0;    }}/* 5.返回线性表L中第pos个元素的值,若pos超出范围,则停止程序运行 */elemType getElem(struct List *L, int pos){    if(pos < 1 

7、

8、 pos > L->size){    /* 若pos越界则退出运行 */        printf("元素序号越界!");        exit(1);    }    return L->list[pos - 1];    /* 返回线性表中序号为pos值的元素值 *

9、/}/* 6.顺序扫描(即遍历)输出线性表L中的每个元素 */void traverseList(struct List *L){    int i;    for(i = 0; i < L->size; i++){        printf("%d ", L ->list[i]);    }    printf("");     return;}/* 7.从线性表L中查找值与x相等的元素,若查找成功则返回其位置,否则返回-1 */int findList(struct List *L, elemType x){    int i;    for(i 

10、= 0; i < L->size; i++){        if(L->lis

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。