import random BLOCK_NUM = 7 LAST_BLOCK = "FF" FIRST_BLOCK = 8 # 第一块fat位置 def generate_chain_structure(): sim_fat = ["0"] * BLOCK_NUM # 文件块的大小 used_blocks = {"00", FIRST_BLOCK} # 用于存储已经被占用的块位置,且预置00块和第一块为已占用状态 for i in range(len(sim_fat) - 1): while True: location = random.randint(0, 99) if location not in used_blocks: # 防止已经被占用的快被重新占用 sim_fat[i] = location used_blocks.add(location) # 添加到已占用块集合 break sim_fat[-1] = LAST_BLOCK chain_structure = [] # 链结构 for i, value in enumerate(sim_fat): if i == 0: print(f"SimFAT[{FIRST_BLOCK}] -> {value}") item = {FIRST_BLOCK: value} # 构建链结构 else: print(f"SimFAT[{sim_fat[i - 1]}] -> {value}") item = {sim_fat[i - 1]: value} # 构建链结构 chain_structure.append(item) # return chain_structure if __name__ == "__main__": print(generate_chain_structure())