zoukankan      html  css  js  c++  java
  • 线性表部分知识


    void DispList(struct List *L) //显示线性表L的所有数据元素
    {
    int i;
    for(i = 0; i < L->length; i++){
    printf("%d ", L ->data[i]);
    }
    printf(" ");
    return;
    }

    void againMalloc(struct List *L) //动态扩展内存,即内存不够用时,重新分配更大的存储空间
    {
    /* 空间扩展为原来的add_Size倍,并由p指针所指向,原内容被自动拷贝到p所指向的存储空间 */
    DataType *p=(DataType*)realloc(L->data,add_Size * L->Max_Size * sizeof(DataType));
    if(!p){ /* 分配失败则退出运行 */
    printf("存储空间分配失败! ");
    exit(1); /* 执行此函数中止程序运行,此函数在stdlib.h中有定义 */
    }
    L-> data = p; /* 使list指向新线性表空间 */
    L-> Max_Size = add_Size * L->Max_Size; /* 把线性表空间大小修改为新的长度 */
    return;
    }

    void InsList(struct List *L, int i, DataType y) //在线性表L中第i个位置插入新的数据元素y。
    { int k;
    if(i < 1 || i > L->length + 1){ /* 若i越界则插入失败 */
    exit(1); /* 执行此函数中止程序运行,此函数在stdlib.h中有定义 */
    }
    if(L->length == L-> Max_Size){ /*若线性表存储空间已满, 重新分配更大的存储空间 */
    againMalloc(L);
    }
    for(k = L->length - 1; k >= i - 1; k--){
    L-> data [k + 1] = L-> data [k]; //线性表i位置的后继数据元素往后移
    }
    L-> data [i - 1] = y;//插入的数据元素
    L->length++; // 成功加入数据元素,线性表L的长度要加1
    return;
    }


    DataType DelList(struct List *L, int i, DataType &y) //删除L的第i个数据元素,并用y返回其值。
    { int k;
    if(i < 1 || i > L->length + 1){ /* 若i越界则插入失败 */
    exit(1);
    }
    if(L->length == L-> Max_Size){ /*若线性表存储空间已满, 重新分配更大的存储空间 */
    againMalloc(L);
    }
    y=L->data[i];
    for (k=i;k<=L->length;k++)
    { L->data[k]=L->data[k+1];
    }
    L->length--;
    return y;
    }

    /* 返回线性表L中第i个元素的值,若i超出范围,则停止程序运行 */
    DataType GetData(struct List *L, int i)
    { int k;
    if(i < 1 || i > L->length + 1){ /* 若i越界则插入失败 */
    exit(1);
    return L->data[i];
    }

    int EmptyList(SeqList L)
    { //如果L为空表则返回1,否则返回0。
    if(i < 1 || i > L->length + 1)
    { /* 若i越界则插入失败 */
    exit(1);
    }
    if (L->length)
    return 1;
    else
    return 0;
    }

    void main()
    {//验证
    SeqList L;
    InitList(&L,100);
    InsList(&L,1,99);
    InsList(&L,2,55);
    InsList(&L,3,44);
    InsList(&L,1,33);
    InsList(&L,2,22);
    DispList(&L);
    InsList(&L,6,'b');
    DispList(&L);
    InsList(&L,6,999);
    DispList(&L);

  • 相关阅读:
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
    Tomcat跨域
    Invalid bean definition with name 'dataSource' defined in class path resource [applicationContext.xml]
    网速测试
    程序员实用工具网站
    安装wls报(主清单位置 "/u01/app/oracle/inventory" 无效 (无法读取/写入/执行))
    pom.xml
    CUDA -- 内存分配
    最长上升子序列(LIS: Longest Increasing Subsequence)
    实例化渲染
  • 原文地址:https://www.cnblogs.com/lcm1094300616/p/5316837.html
Copyright © 2011-2022 走看看