这一部分是用两个数组来模拟链表的功能,一个数组的下标表示节点的编号,下标指向的数字代表链表节点的值。
另一个数组存储的是链表节点之间的关系,数组下标表示某个节点的编号,数组中下标位置的值是以这一下标值为编号的节点的下一个节点的编号。
也有一些抽象,不过把代码实现一遍就清晰很多了
下面上代码:
python:
import numpy as np
def simulation_list():
data = np.zeros((100,), dtype=int)
next = np.zeros((100,), dtype=int)
n = int(input('请输入链表中节点的个数:'))
for i in range(n):
data[i] = int(input('输入当前节点的值:')) #将输入的n个节点的值依次保存到数值数组中
next[i] = i + 1 #数组中下标代表当前节点的编号,下标所指的数组中的值是链表中下一个节点的编号
next[n - 1] = -1 #最后一个节点的next应该为空
#下面是插入节点的操作
num = int(input('请输入要插入的节点值:'))
data[n] = num #在data数组末尾直接加上添加的节点的数值
index = 0
while next[index] != -1: #遍历next数组,找到比插入值大的节点的编号,将新节点插入到这一节点前面
val = data[next[index]]
if val > num: #index_next下一节点上的值大于要插入的节点值
next[n] = next[index]
next[index] = n
break
else:
index += 1
t = 0
while t != -1:
print(data[t])
t = next[t]
if __name__ == '__main__':
simulation_list()
使用数组模拟链表操作
该博客介绍了如何使用两个numpy数组来模拟链表,其中一个数组存储节点值,另一个记录节点间的连接。通过输入节点值和节点数量创建链表,并实现插入新节点的功能。代码中展示了从用户输入获取节点值,然后遍历数组找到合适位置插入新节点的过程。
637

被折叠的 条评论
为什么被折叠?



