在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结构体,其中包含一个指向栈顶的指针topStackNode结构体用于表示栈中的每个节点,其中包含一个data字段用于存储数据,以及一个next指针用于指向下一个节点。

readTop函数用于读取栈顶元素。首先判断栈是否为空,如果为空则输出提示信息并返回-1。否则,通过stack->top->data获取栈顶节点的数据。

main函数中,首先初始化了一个栈结构,并将栈顶指针top初始化为NULL。然后,通过动态分配内存创建一个新的节点,并将其数据赋值为1,将其next指针指向当前栈顶节点,最后将栈顶指针top指向新的节点。

最后,调用readTop函数读取栈顶元素,并将结果输出

C语言top指针指向待插入位置读取栈顶元素

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

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