普通的单链表往往在创建时会有些复杂,此时我们可以利用数组来实现链表的功能。链表的每一个节点内都存有两部分数据,一个是数据,一个则是地址。于是我们就可以利用新的数组来存储地址。此时要注意一点,新数组所存的地址虽说是地址,但其实是数组的下标,原来对链表的遍历现在转化为对数组的遍历,我们可以创建两个数组,data数组和right数组。
现在我们创建两个数组,位置所表示的都是他们分别的下标。其中data数组里存的就是我们所需的数据,而right数组里存的都是data数组对应位置右边数据的下标。例如right【1】= 2表示的就是data数组里第一个元素右边数据的下标也就是2.right【9】= 0表示data数组9号元素后面没有元素。
现在我们需要在8前面插入6.做法是在data数组的最后一个10号位存6,再将right数组内3号位数字改为10,10号位改为4.
right数组在这里的作用其实相当于链表里**“指向“**这一步,现在此数组的意义为data【1】号元素的右边是data【2】,data【2】号元素的右边是data【3】,data【3】号元素的后面是data【10】以此类推。
写成代码是这样的
#include <stdio.h>
#include <stdlib.h>
int main()