第三周——项目一—顺序表的基本运算(3)

来源:互联网 发布:sql count 用法 编辑:程序博客网 时间:2024/06/07 00:02
/*烟台大学计算机与控制工程学院文件名称:lk作者:尹娜完成日期:2017年9月18日问题描述:初始化线性表InitList和插入数据元素ListInsert两个算法输入描述:无需输入程序输出:插入到线性表中的元素*/#include <stdio.h>#include <malloc.h>#define MaxSize 50    //Maxsize将用于后面定义存储空间的大小typedef int ElemType;  //ElemType在不同场合可以根据问题的需要确定,在此取简单的inttypedef struct{    ElemType data[MaxSize];  //利用了前面MaxSize和ElemType的定义    int length;} SqList;//自定义函数声明部分void DispList(SqList *L) ;    //输出线性表DispList(L)void InitList(SqList *&L);    //初始化线性表InitListvoid DestroyList(SqList *&L);   //销毁线性表DestroyListbool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L)bool ListInsert(SqList *&L,int i,ElemType e);   //插入数据元素ListInsertbool ListDelete(SqList *&L,int i,ElemType &e);   //删除数据元素ListDelete//实现测试函数int main(){    SqList *sq;    InitList(sq);    ListInsert(sq, 1, 5);    ListInsert(sq, 2, 3);    ListInsert(sq, 1, 4);    DispList(sq);    return 0;}//下面实现要测试的各个自定义函数//初始化线性表InitListvoid InitList(SqList *&L){    L=(SqList *)malloc(sizeof(SqList));   //分配存放线性表的空间    L->length=0;  //置空线性表的长度为0}//销毁线性表DestroyListvoid DestroyList(SqList *&L){    free(L);  //释放L所指的线性表空间}//插入数据元素ListInsertbool ListInsert(SqList *&L,int i,ElemType e){    int j;    if(i<1||i>L->length+1)        return false;  //参数i错误时返回false    i--;   //将顺序表的逻辑序号转化为物理序号    for(j=L->length;j>i;j--)   //将的date[i]及后面的元素后移一个位置        L->data[j]=L->data[j-1];    L->data[i]=e;     //插入元素e    L->length++;    //顺序表长度加1    return true;   //成功插入返回true}//删除数据元素ListDeletebool ListDelete(SqList *&L,int i,ElemType &e){     int j;    if(i<1||i>L->length)        return false;  //参数i错误时返回false    i--;   //将顺序表的逻辑序号转化为物理序号    e=L->data[i];    for(j=i;j<L->length-1;j++)   //将的date[i]及后面的元素前移一个位置        L->data[j]=L->data[j+1];    L->length--;    //顺序表长度减1    return true;   //成功删除返回true}//输出线性表DispList(L)void DispList(SqList *L){    int i;    if (ListEmpty(L))        return;    for (i=0; i<L->length; i++)        printf("%d ",L->data[i]);    printf("\n");}//判定是否为空表ListEmpty(L)bool ListEmpty(SqList *L){    return(L->length==0);}

知识总结:将一些基本算法集合到一起,去实现相应的功能。

学习心得:在学习理解了一些基本算法后,通过动手操作,进一步的加深了对基本算法的理解。

阅读全文
0 0
原创粉丝点击