湘潭大学数据结构课件Ch03List,Stacks,andQueues探究.ppt

湘潭大学数据结构课件Ch03List,Stacks,andQueues探究.ppt

递归总能够被彻底除去。 非递归程序通常比等价的递归程序要快, 但是递归程序通常更简单而易于理解。 §3 栈ADT ? 函数调用 -- 系统栈 Return Address Stack Frame s p Local Variables Return Address s p s p Old Frame Pointer s p f p f p s p f p void PrintList ( List L ) { if ( L != NULL ) { PrintElement ( L-Element ); PrintList( L-next ); } } /* 一个递归的坏例子*/ 如果L包含1,000,000 个 元素,会发生什么情况? 有什么问题呢? 尾递归 void PrintList ( List L ) { top: if ( L != NULL ) { PrintElement ( L-Element ); L = L-next; goto top; } } /* 编译器可以自动去除尾递归 */ 6/9 如果1,000,000个数据还不足 使程序崩溃,那么可用 更大

文档评论(0)

1亿VIP精品文档

相关文档