C语言top指针指向待插入位置读取栈顶元素
在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/iIok 著作权归作者所有。请勿转载和采集!