眼部整形

首页 » 常识 » 问答 » 静态链表C语言实现
TUhjnbcbe - 2024/7/14 20:33:00

数据结构里有一种存储结构,叫做静态链表,它能够融合顺序表和链表各自的优点,从而既能快速访问元素,又能快速增加或删除数据元素。

静态链表,也是线性存储结构的一种,它兼顾了顺序表和链表的优点于一身,可以看做是顺序表和链表的升级版。使用静态链表存储数据,数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间"一对一"的逻辑关系通过一个整形变量(称为"游标",和指针功能类似)维持(和链表类似)。提示:想系统学习数据结构的小伙伴,请进入我的个人网站xiexuewu.github.io,有一整套的数据结构和算法教程,提供有完整、可运行的C语言程序,非常适合有C语言基础的初学者。

例如,使用静态链表存储{1,2,}的过程如下:创建一个足够大的数组,假设大小为6,如图1所示:

图1空数组

接着,在将数据存放到数组中时,给各个数据元素配备一个整形变量,此变量用于指明各个元素的直接后继元素所在数组中的位置下标,如图2所示:

图2静态链表存储数据

通常,静态链表会将第一个数据元素放到数组下标为1的位置(a[1])中。

图2中,从a[1]存储的数据元素1开始,通过存储的游标变量,就可以在a[]中找到元素1的直接后继元素2;同样,通过元素a[]存储的游标变量5,可以在a[5]中找到元素2的直接后继元素,这样的循环过程直到某元素的游标变量为0截止(因为a[0]默认不存储数据元素)。类似图2这样,通过"数组+游标"的方式存储具有线性关系数据的存储结构就是静态链表。

静态链表中的节点

通过上面的学习我们知道,静态链表存储数据元素也需要自定义数据类型,至少需要包含以下2部分信息:

数据域:用于存储数据元素的值;

游标:其实就是数组下标,表示直接后继元素所在数组中的位置;

因此,静态链表中节点的构成用C语言实现为:

typedefstruct{intdata;//数据域intcur;//游标}

1
查看完整版本: 静态链表C语言实现