栈的顺序存储结构中如何清空栈代码C语言
时间: 2024-10-14 12:01:57 浏览: 28
C语言栈顺序结构实现代码
在C语言中,如果你有一个动态分配内存的栈数据结构,你可以通过将栈顶指针置为NULL或者设置为初始为空的值来清空它。这里是一个简单的示例:
```c
#include <stdlib.h> // 包含malloc和free函数
typedef struct StackNode {
int data; // 存储的数据
StackNode* next; // 指向下一个节点的指针
} StackNode;
StackNode* top = NULL; // 初始化栈顶指针为NULL
// 清空栈
void clearStack(StackNode** top) {
if (*top != NULL) { // 如果栈非空
StackNode* temp = *top;
while (temp != NULL) { // 遍历栈
StackNode* nextTemp = temp->next;
free(temp); // 释放当前节点
temp = nextTemp; // 更新临时指针到下一个节点
}
*top = NULL; // 设置栈顶指针为NULL
}
}
```
在这个例子中,`clearStack()`函数接收指向栈顶指针的指针作为参数,以便于在内部修改栈顶。记得,在使用这个栈之前要分配内存,并在不需要时调用`clearStack(&top)`。
阅读全文