⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 说明.txt

📁 内存回放
💻 TXT
字号:
程序运行过程中可能产生没用的内存块,称为内存垃圾。需要使用内存回收技术不断检查是否存在内存垃圾,并将它们及时释放,以备后面重新使用。

在内存中存在多个内存块,每一个内存块中都有一个索引表,指向和它相关联的其它内存块。有用的内存块称为“活动”的内存块。从当前已知的活动内存块出发,通过一级或多级索引能够检索到的其它内存块,也是活动的。否则该内存块就是垃圾内存块。

例如,如下图所示的索引关系中,标有root的内存块1、2为已知的活动内存块。从内存块1、2出发,沿箭头方向检索,可得知3、4、5、8都是活动内存块(在图中以黄色表示)。需要回收的垃圾内存块为6、7、9、10、11。

现已知有若干个内存块和它们之间的索引关系,要求编程找出所有内存垃圾。


 

【输入文件】

 

输入文件为当前目录下的collect.in。

该文件第一行为两个整数n(1≤n≤5)和m(0≤m≤50), n表示root内存块的个数,m表示其它内存块的个数。n和m之间用空格分隔。

后面紧跟有n+m行,每行有若干个以空格分隔的整数。第i行(1≤ i≤m+n)整数表示从第i个内存块可以直接检索到的内存块的编号,每行数字都以0结尾。其中前n行是活动的root内存块。

 

【输出文件】

 

输入文件为当前目录下的collect.out。

要求在该文件中输出一行整数,是所有垃圾内存块的编号。各整数按从小到大的次序输入,之间用空格分隔。

如果没有垃圾内存块,则输出一个整数-1。

 

【输入样例】

 

2 9

3 4 0

4 5 0

0

8 0

0

1 0

8 10 11 0

0

0

11 0

0

 

【输出样例】

 

6 7 9 10 11

 

【样例说明】

 

第一行输入n=2,m=9,表示共有11个内存块,其中有2个root内存块。

以后的11行分别表示了各内存块可以直接索引到的内存块编号。

计算结果如上例所示。

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -