• 静态链表


    1、概念:用数组描述的链表称为静态链表,这种描述方法叫做游标实现法。

    //线性表的静态链表存储结构
    #define MAXSIZE 1000
    typedef struct{
        ElemType data;//数据 
        int cur;//游标(cursor) 
    }component,StaticLinkList(MAXSIZE); 

    2、静态链表—插入元素

    //插入操作分两部分组成
    //首先是获得空闲分量的下标
    int Malloc_SLL(StaticLinkList space){
        int i = space[0].cur;
        if(space[0].cur){
            space[0].cur = spae[i].cur;//把它的下一个分量用来作为备用 
        }
        return i; 
    }
    
    //插入操作
    Status ListInsert(StaticLinkList L, int i, ElemType e){
        int j,k,l;
        k = MAXSIZE-1;//数组的最后一个元素
        if( i<1 || i>ListLength(L)+1 ) 
            return ERROR;
        j = Malloc_sLL(L);
        if(j){
            L[j].data = e;
            for(l=1;l<=i-1;l++){
                k = L[k].cur;
            }
            L[j].cur = L[k].cur;
            L[k].cur = j;
            return OK;
        }
        else
            return ERROR;
    }

     3、静态链表—删除元素

    //删除操作
    Status ListDelete(StaticLinkList L, int i){//删除第i的位置的元素 
        int j,k;
        if(i<1||i>ListLength(L)+1)
            return ERROR;
        k = MAXSIZE - 1;
        for(j = 1;j <= i-1;j++){
            k = L[k].cur;
        }
        j = L[k].cur;
        L[k].cur = L[j].cur;
        Free_SLL(L,j);
        return OK; 
    } 
    
    //将下标为k的空闲结点回收到备用年链表
    void Free_SLL(StaticLinkList space, int k){
        sapce[k].cur = space[0].cur;
        space[0].cur = k;
    } 

    4、返回L中数据元素的个数

    //返回L中数据元素的个数
    int ListLength(StaticLinkList L){
        int j = 0;
        int i = L[MAXSIZE-1].cur;
        while(i){
            i = L[i].cur;
            j++;
        }
        return j;
    } 

    总结:静态链表的优缺点

    优点:在插入和删除操作中,只需要修改游标,不需要移动元素,从而改进了在顺序存储结构中插入和删除操作需要移动大量元素的缺点。

    缺点:没有解决连续存储分配带来的表长难以确定的问题;失去了顺序存储结构中随机存取得特性。

    总的来说:静态链表其实就是为了给没有指针的编程语言设计的一种实现单链表的功能。尽管我们可以使用单链表不用静态链表了,但这样的思考方式是非常巧妙的,应该理解其思想,以备不时之需。

  • 相关阅读:
    点对点风格软件架构模式
    《XXX重大技术需求征集系统》的可用性和可修改性战术分析
    淘宝网应用场景分析
    《架构漫谈》读后感
    《软件需求模式》阅读笔记06
    hdfs会出现的一些问题
    经常使用的架构模式之一——客户端-服务器模式
    阅读《大型网站技术架构》
    以《淘宝网》为例分析质量属性
    架构漫谈读后感
  • 原文地址:https://www.cnblogs.com/geziyu/p/9897313.html
Copyright © 2020-2023  润新知