线性表——顺序存储结构之静态链表

Posted Tonbby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表——顺序存储结构之静态链表相关的知识,希望对你有一定的参考价值。

  引言:C语言中具有的指针能力,可以使它非常容易地操作内存中的地址和数据。后来的面向对象语言,如Java,C#等,虽然没有使用指针,但由于启动了对象引用机制,从某种角度也间接实现了指针的某些作用。但是对于一些早期编程高级语言:Basic、fortran等,不存在指针。在没有指针的情况下,要想使用链表,就要用到静态链表了。

  用数组描述的链表称为静态链表(游标实现法) 。

  那么怎么实现呢?

  首先,我们让数组中的元素都是由两个数据域组成,data和next。data用来存放元素,next相当于链表中的next指针,用来存放元素的后继在数组中的下标。

  在定义结构体之前,先进行准备工作:

 

1 #define MAX 100                    //假设此静态链表的最大长度是100
2 #define true 1             //返回值,true为真         
3 #define false 0;            //返回值,false为假
4 typedef int ElemType;         //存放数据元素的数据类型,这里设置为int类型
5 typedef int Boolean;         //伪装成Java代码的boolean类型,返回1相当于True,返回0相当于返回false

 

 

 

  结构体实现如下:

1 typedef struct space{
2     ElemType data;   //存放数据元素
3     int next;        //存放元素的后继在数组中的下标
4 }array[MAX];        

 

 

 

  

  

以上是关于线性表——顺序存储结构之静态链表的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法-线性表之静态链表

《数据结构》复习之线性表(顺序表和链表)

数据结构之顺序表(数组)和链表

数据结构与算法合集

链表是顺序表吗?

线性链表之顺序表