#include<stdio.h>
#include<stdlib.h>
//链式栈结点
typedef struct LINKNODE {
struct LINKNODE* next;
}LinkNode;
//链式栈
typedef struct LINKSTACK {
LinkNode head;
int size;
}LinkStack;
typedef struct PERSON {
LinkNode node;
char name[64];
int age;
}Person;
//初始化栈
LinkStack* Init_LinkStack() {
LinkStack *stack = (LinkStack*)malloc(sizeof(LinkStack));
stack->head.next = NULL;
stack->size = 0;
return stack;
}
//入栈
void Push_LinkStack(LinkStack *stack, LinkNode *data) {
if (stack == NULL) {
return;
}
if (data == NULL) {
return;
}
data->next = stack->head.next;
stack->head.next = data;
stack->size++;
}
//出栈
LinkNode* Pop_LinkStack(LinkStack *stack) {
if (stack == NULL) {
return NULL;
}
if (stack->size == 0) {
return NULL;
}
//第一个有效结点
LinkNode *top = stack->head.next;
stack->head.next = top->next;
stack->size--;
retu
C语言-栈-链式结构
最新推荐文章于 2024-06-04 21:45:52 发布
本文深入探讨了C语言中如何使用链式结构实现栈。详细解释了栈的定义,链栈的基本操作如入栈、出栈,并通过实例展示了其工作原理。此外,还讨论了链栈相比于数组栈的优势及其在实际问题中的应用。
摘要由CSDN通过智能技术生成