摘要: g函数返回后,f函数对应的栈中的数据没有任何变化,这就是回溯算法的核心。 可以这样思考,先逆序打印从第二个节点开始的子表,最后再将第一个节点打印出来。 逆序打印栈的增长与退栈示意图: 退栈打印的过程就是回溯的过程。 递归调用的时候只是先将参数保存在栈上,这时这个参数还没有用到,只是让指针指向了相应的 阅读全文
posted @ 2018-09-19 23:41 周伯通789 阅读(244) 评论(0) 推荐(0)
摘要: 将大问题分解,先将第一个节点拿出来,将其它的节点看成一个整体。 实验2: e始终指向字符串的开头,用来打印,s用来控制交换。 一开始,a和a交换,全排列b、c。 然后,a和b交换,全排列a、c。 然后交换a和c,全排列b、a。 如果两个字符是一样的,就没有必要交换,否则全排列有重复的现象。 阅读全文
posted @ 2018-09-19 22:42 周伯通789 阅读(245) 评论(0) 推荐(0)
摘要: 代码改进: 小结: 阅读全文
posted @ 2018-09-19 21:50 周伯通789 阅读(165) 评论(0) 推荐(0)
摘要: 思考: replace图解: 程序完善: DTString.h: DTString.cpp: 小结: 阅读全文
posted @ 2018-09-19 00:04 周伯通789 阅读(485) 评论(0) 推荐(0)