zoukankan      html  css  js  c++  java
  • 数据结构

    注意

    线性表是有限序列。

    基本操作

    initList(&L);
    Destroy(&L);//并且释放L所占用内存空间
    LocateElem(L,e);
    GetELem(L,i);
    ListInsert(&L,i,e);//前插
    ListDelete(&L,i&e);
    

    申请线性表

    //静态
    typedef struct
    {
        ElemType data[MaxSize];
        int length;
    }SqList;
    
    //动态
    typedef struct
    {
        ElemType *data;//需要动态申请空间,否则仅仅是一个地址
        int length;
    }SqList;
    
    C L.data=(Elemtype*)malloc(sizeof(ElemType)*initSize);
    C++ L.date=new ElemType[InitSize];
    
    //i:顺序表的标号,不是数组
    //顺序表:连续存放、不能有间隔 1-n
    bool ListInsert(SqList &L,i,ElemType e)
    {
        if(i<1||i>L.length+1)
            return false;
        if(L.length>=MaxSize)//是否有空间能够让我们insert
            return false;
        for(int j=L.length;j>=i;j--)
            L.data[j]=L.data[j-1];//往后移一位
        L.data[i-1]=e;
        L.length++;
        return true;
    }
    //尾部进行插入
    //最好:1最坏:n平均:n
    
    bool ListDelete(Sq,int i,ElemType &e)
    {
        if(i<1||i>L.length)
            return false;
        e=L.data[i-1];//返回删除值
        for(int j=i;j<L.length;j++)
            L.data[j-1]=L.data[j];
        L.length--;
        return true;
    }
    
    int locateElem(SqList L,EleType e)
    {
        int i;
        for(int i=0;i<L.length;i++)
        {
            if(L.data[i]==e)
                return i+1;
        }
        return 0;//说明顺序表中没有该值
    }
    

    线性表的链式存储:单链表 不一定连续的
    通过指针实现线性逻辑关系
    单链表:数据域+指针域

    typedef struct LNode
    {
        Elemtype data;
        struct LNode *next;
    }LNode,*LinkList;
    
  • 相关阅读:
    SetROP2
    JOIN
    Delphi深度探索之PItemIDList的基本概念
    访问网络资源示例
    AVICAP 中文
    AVICAP (全)
    摄像头(简介)
    以远程计算机上的用户身份访问Com+应用
    非匿名方式访问远程的com+
    三层控件基础知识
  • 原文地址:https://www.cnblogs.com/OFSHK/p/13660009.html
Copyright © 2011-2022 走看看