C语言栈操作:如何使用指针读取栈顶元素
在 C 语言中,通常使用指针来操作栈结构。假设已经定义了一个栈结构体,并且有一个指向栈顶的指针 'top'。
要读取栈顶元素,可以使用指针解引用操作符 * 来获取指针所指向的元素。示例代码如下:
#include <stdio.h>
typedef struct {
int data;
struct StackNode* next;
} StackNode;
typedef struct {
StackNode* top;
} Stack;
// 读取栈顶元素
int readTop(Stack* stack) {
if (stack->top == NULL) {
printf("栈为空\n");
return -1;
}
return stack->top->data;
}
int main() {
// 初始化栈
Stack stack;
stack.top = NULL;
// 压栈操作
StackNode* newNode = (StackNode*)malloc(sizeof(StackNode));
newNode->data = 1;
newNode->next = stack.top;
stack.top = newNode;
// 读取栈顶元素
int topValue = readTop(&stack);
printf("栈顶元素为:%d\n", topValue);
return 0;
}
在上述代码中,通过定义了一个 Stack 结构体,其中包含一个指向栈顶的指针 'top'。StackNode 结构体用于表示栈中的每个节点,其中包含一个 'data' 字段用于存储数据,以及一个 'next' 指针用于指向下一个节点。
readTop 函数用于读取栈顶元素。首先判断栈是否为空,如果为空则输出提示信息并返回 -1。否则,通过 stack->top->data 获取栈顶节点的数据。
在 main 函数中,首先初始化了一个栈结构,并将栈顶指针 'top' 初始化为 NULL。然后,通过动态分配内存创建一个新的节点,并将其数据赋值为 1,将其 'next' 指针指向当前栈顶节点,最后将栈顶指针 'top' 指向新的节点。
最后,调用 readTop 函数读取栈顶元素,并将结果输出。
原文地址: https://www.cveoy.top/t/topic/qoRY 著作权归作者所有。请勿转载和采集!