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

  引言: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];        

  

  

猜你喜欢

转载自www.cnblogs.com/tonbby/p/9019117.html