zoukankan      html  css  js  c++  java
  • 一、顺序表

      定义一张顺序表就是在内存中开辟一段连续的存储空间,并给他取个名字。

    定义顺序列表的方法:一、静态定义;二、动态定义;

    静态定义

    #define MaxSize 100
    ElemType Sqlist[MaxSize];
    int len;

    动态定义

    #define MaxSize 100
    typedef struct{
    ElemType *elem;
    int length;
    int listsize;
    } Sqlist;
    void initSqlist(Sqlist *L)
    {
    L->elem = (int *)malloc(MaxSize*sizeof(ElemType));
    if (!L->elem)
    {
    exit(0);
    }
    L->length = 0;
    L->listsize = Maxsize;
    }

    像顺序表中插入元素

        在长度为n的顺序表中的第i个位置插入新元素。例如:

        A(a1,a2,...ai-1,ai,...an)

        在第i个位置插入新元素item后,变为

        A (a1,a2,...ai-1,item.ai,... an)

    静态表中插入:

    void InserElem(ElemType Sqlist[], int n, int i, ElemType item)
    {
    int t;
    if (n==MaxSize || i<1 || i>n+1)
    {
    exit(0);
    }
    for (t=n-1; t>=i-1; t--)
    {
    Sqlist[t+1] = Sqlist[t];
    }
    Sqlist[i-1] = item;
    n = n + 1;
    }

      动态表中插入

    void InsertElem(Sqlist *L, int i, ElemType item)
    {
    ElemType *insertPtr, *p;
    if(i<1 || i>L->length+1)
    {
    exit(0);
    }
    if(L->length > L->listsize)
    {
    L->elem = (ElemType *)realloc(L->elem, (L->listsize+10)*sizeof (ElemType));
    L->listsize = L->listsize + 10;
    }
    insertPtr = &(L->elem[i-1];
    for (p=&(L->elem[L->length-1]); p>=inserPtr; p--)
    {
    *(p+1) = *p;
    }
    *insertPrt = item;
    L->length++;
    }
  • 相关阅读:
    Python学习 :面向对象 -- 三大特性
    Python学习 :面向对象(一)
    小米oj #40 找小“3”
    第三次作业
    排序算法模板
    树状数组求逆序数
    最短路模板
    字典树模板
    LCS
    多项式朴素乘法
  • 原文地址:https://www.cnblogs.com/MrDing/p/2353102.html
Copyright © 2011-2022 走看看