C语言-栈-链式结构

本文深入探讨了C语言中如何使用链式结构实现栈。详细解释了栈的定义,链栈的基本操作如入栈、出栈,并通过实例展示了其工作原理。此外,还讨论了链栈相比于数组栈的优势及其在实际问题中的应用。
摘要由CSDN通过智能技术生成
#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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值