在 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 函数读取栈顶元素,并将结果输出。

C语言栈操作:如何使用指针读取栈顶元素

原文地址: https://www.cveoy.top/t/topic/qoRY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录