码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构和算法-学习笔记7

时间:2014-12-19 12:19:47      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:数据结构和算法

静态链表

静态链表:用数组描述的链表,描述方式叫做游标实现法

线性表的静态链表存储结构

#define MAXSIZE 1000

typedef struct

{

    Elemtype data;//数据

    int cur;//游标

}Component,StaticLinkList[MAXSIZE];

bubuko.com,布布扣

注最后一个元素的游标应该是0

静态链表初始化

Status InitList(StaticLinkList space)

{

    int i;

    for(i =0;i<MAXSIZE-1;i++)

        space[i].cur = i+1;

    space[MAXSIZE-1].cur=0;

    return OK;

}

插入数据,如在上图中插入B

bubuko.com,布布扣

首先获得空闲分量的下标

int Malloc_SLL(StaticLinkList space)

{

    int i = space[0].cur;

    if(space[0].cur)//如果是空链表

        space[0].cur = space[i].cur;//作为一个分量备用

    return i;

}

示例代码

status ListInsert(staticLinkList L,int i,Elemtype e)

{

    int j,k,l;

    k = MAX_SIZE -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;

    }

    return ERROR;

}

删除操作

bubuko.com,布布扣

示例代码

status ListInsert(staticLinkList L,int i)

{

    int j,k;

    k = MAX_SIZE -1;

    if(i<1 || i>ListLength(L))

    {

        return ERROR;

    }

    j = Malloc_SLL(L);//调用上面写的函数,

    for(j=1;j<=i-1;j++)

    {

         k = L[k].cur;

     }

    j = L[k].cur;

    L[k].cur = L[j].cur;

    return OK;

}


数据结构和算法-学习笔记7

标签:数据结构和算法

原文地址:http://4790276.blog.51cto.com/4780276/1591647

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!