数据结构-严蔚敏《数据结构》C语言版-栈满判断与进栈操作

需积分: 10 3 下载量 5 浏览量 更新于2024-08-19 收藏 702KB PPT 举报
"判断栈满-清华大学严蔚敏数据结构c语言完整ppt" 在这个资源中,主要讲解了数据结构中的栈操作,特别是如何判断栈是否已满以及如何执行进栈操作。栈是一种特殊的线性表,遵循“后进先出”(LIFO)的原则。在C语言中,可以通过定义一个顺序栈(seqstack)结构体来实现。 1. **判断栈满** 在这里给出的`stackfull`函数用于检查栈是否已满。栈满的条件是栈顶指针`top`等于栈的大小`stacksize - 1`。因为`top`通常从0开始计数,所以当`top`等于`stacksize - 1`时,表示栈中已经存放了`stacksize`个元素,无法再添加新的元素,即栈已满。函数的实现如下: ```c int stackfull(seqstack *s) { return(s->top == stacksize - 1); } ``` 这里的`s`是一个指向顺序栈结构体的指针,`stacksize`是栈的最大容量。 2. **进栈操作** `push`函数用于将一个新元素`x`压入栈中。在执行进栈操作之前,首先需要检查栈是否已满。如果栈已满,函数将返回错误提示“stack overflow”。否则,将`x`存放在栈顶位置(即`data[top + 1]`),然后将`top`加1表示栈顶位置移动。函数实现如下: ```c void push(seqstack *s, datatype x) { if (stackfull(s)) { error("stack overflow"); } else { s->data[++s->top] = x; } } ``` `datatype`是数据的类型,可以是整型、浮点型等,根据实际需求来设定。 此外,资源还提到了数据结构和算法的相关基础概念: - **数据结构**:数据结构是研究数据的逻辑结构、物理结构以及它们之间的相互关系,并为这些结构定义相应的操作集合。数据结构的选择直接影响算法的效率和程序的性能。 - **第一章绪论**:介绍了数据结构的重要性,强调了数据结构在信息处理中的作用,以及如何根据数据的结构设计合适的算法。并举例说明了数据结构在电话号码查询系统、图书馆书目检索系统、教师资料档案管理和交通灯管理等实际问题中的应用。 - **基本概念和术语**:数据是信息的载体,而数据结构是研究数据组织方式的学科。书中提到了数据和数据结构的概念,以及数据结构中的逻辑结构和物理结构,以及数据结构与算法之间的关系。 - **算法**:算法是解决问题的具体步骤,包括算法设计的要求、效率度量(如时间复杂性和空间复杂性)以及算法的存储需求。 这个资源对于学习数据结构,尤其是C语言实现的数据结构操作,提供了非常实用的基础知识和实例。