4通种子算法中,为了填充种子上下左右四个方向的像素点,产生了两种思路。
一种是堆栈法,相当耗内存,因为要把每个点四周的点不停地入栈、出栈,导致大量的内存空间要用来存储点的信息,最后由于内存不够而失败。就算每当出栈一个元素及时释放内存也不行,因为重复入栈的元素实在太多。
另一种是用递归的方式,这种方式不需要我们把每个像素点四周的点的信息进行入栈、出栈,但是递归机制本身决定了环境要为我们的递归方法不断的保留出入口信息,而这个过程也是通过维护入口栈来实现的,所以最后也会由于分配给tc的内存限制而失败。
因此这两种方法都是不可取的。必须采用改进的种子算法,如(扫描线种子算法)来实现。而这正是我们每一个软件专业的人应该努力的方向。现在硬件本身不断升级,诸如tc环境这种平台对程序的限定是可以取消的,但是我们是软件开发者,我觉得在软件的层面提高代码的质量,比如改进算法,仍是我们的责任。