清华大学严蔚敏课件:静态顺序栈实现十进制转二八进制

需积分: 3 1 下载量 124 浏览量 更新于2024-08-21 收藏 3.3MB PPT 举报
在清华大学数据结构课程中,教授们强调了采用静态顺序栈方式实现数据结构的重要性,特别是在转换进制数的过程中。具体来说,函数`conversion`的目标是将十进制整数`N`转换为二进制或八进制数。这个过程利用了栈(SqStack)的数据结构,栈是一种后进先出(LIFO)的数据结构,适合用于处理序列数据和临时存储。 首先,函数初始化一个静态顺序栈`S`,然后通过循环,将输入的`n`除以目标基数(2或8),得到的余数依次入栈。这样做的目的是将`n`分解为其各个位上的数字,这些数字对于不同进制的表示至关重要。例如,当`n = 123`,转换为二进制时,每一步会得到余数`1101101`,这部分内容就通过`push`操作存入栈中。 接着,当栈不为空时,通过`pop`操作取出栈顶元素,并用`printf`输出,这就实现了从栈中取出并按照原顺序显示转换后的数字。这种方法确保了数字的正确顺序,因为栈的出栈遵循先进先出的原则。 静态顺序栈在这里的应用体现了数据结构中的基本操作,如栈的插入(`push`)和删除(`pop`),以及栈作为数据结构在问题解决中的灵活性。在《数据结构(C语言版)》这本书中,作者严蔚敏和吴伟民教授讲解了这些概念,并将其与实际编程任务相结合,让学生理解如何在实际问题中设计和使用数据结构来提高程序的效率。 此外,《数据结构》和《数据结构与算法分析》等教材进一步深化了对数据结构的理解,包括线性表、数组、链表、树、图等多种数据结构,以及它们在不同应用场景下的操作和优化。电话号码查询系统和磁盘目录文件系统的例子展示了如何通过数据结构来组织和管理大量信息,提高查找和操作的效率。 总结起来,这个代码片段展示了数据结构中的栈技术在十进制转二进制/八进制中的应用,以及在设计和实现实际问题算法中的作用。学习数据结构不仅能帮助理解计算机内部的工作原理,还能为编写高效、可维护的程序打下坚实的基础。