特种设备作业人员证查询,seo上海网站推广,基于android的app开发步骤,沈阳做网站费用链栈是一种栈的实现方式#xff0c;使用链表来存储栈中的元素。下面是链栈的基本操作的C语言实现#xff1a;
#include stdio.h
#include stdlib.h// 定义链栈的结点结构
typedef struct Node {int data; // 存储数据struct Node* next; // 指向下…链栈是一种栈的实现方式使用链表来存储栈中的元素。下面是链栈的基本操作的C语言实现
#include stdio.h
#include stdlib.h// 定义链栈的结点结构
typedef struct Node {int data; // 存储数据struct Node* next; // 指向下一个结点的指针
} Node;// 定义链栈的结构
typedef struct {Node* top; // 栈顶指针
} Stack;// 初始化链栈
void init(Stack* stack) {stack-top NULL;
}// 判断链栈是否为空
int isEmpty(Stack* stack) {return stack-top NULL;
}// 元素入栈
void push(Stack* stack, int data) {Node* newNode (Node*)malloc(sizeof(Node));newNode-data data;newNode-next stack-top;stack-top newNode;
}// 元素出栈
int pop(Stack* stack) {if (isEmpty(stack)) {// 栈为空时出栈操作非法printf(Stack is empty\n);return -1;}Node* tempNode stack-top;int data tempNode-data;stack-top tempNode-next;free(tempNode);return data;
}// 获取栈顶元素
int peek(Stack* stack) {if (isEmpty(stack)) {// 栈为空时获取栈顶元素非法printf(Stack is empty\n);return -1;}return stack-top-data;
}// 打印链栈中的元素
void display(Stack* stack) {if (isEmpty(stack)) {printf(Stack is empty\n);return;}Node* currentNode stack-top;while (currentNode) {printf(%d , currentNode-data);currentNode currentNode-next;}printf(\n);
}int main() {Stack stack;init(stack);push(stack, 1);push(stack, 2);push(stack, 3);push(stack, 4);display(stack); // 输出4 3 2 1printf(Peek: %d\n, peek(stack)); // 输出4printf(Pop: %d\n, pop(stack)); // 输出4printf(Pop: %d\n, pop(stack)); // 输出3display(stack); // 输出2 1return 0;
}以上是链栈的基本操作的C语言实现。代码中使用结构体 Node 表示链栈的节点Stack 表示链栈本身。链栈的基本操作包括初始化链栈、判断链栈是否为空、元素入栈、元素出栈、获取栈顶元素和打印链栈中的元素。你可以根据需要进行相应的调用和扩展。